Совместное использование сценариев, которые требуют активации VirtualENV

StackOverflow https://stackoverflow.com/questions/2253712

  •  20-09-2019
  •  | 
  •  

Вопрос

У меня установлены VirtualENV и VirtualENVWrapper на общем сервере Linux с параметрами по умолчанию (VirtualENV в ~/.virtualEnvs). У меня есть несколько сценариев Python, которые можно запустить только тогда, когда активируется правильный VirtualENV.

Теперь я хочу Поделиться Эти сценарии с другими пользователями на сервере, но не требуя, чтобы они знали что -либо о VirtualEnv ... чтобы они могли запустить python scriptname или же ./scriptname И сценарий будет работать с библиотеками, доступными в моем VirtualEnv.

Какой самый чистый способ сделать это? Я играл с несколькими вариантами (например, изменение линии Шебанг, чтобы указать на VirtualEnv, предоставленную переводчиком), но они кажутся довольно негибкими. Какие-либо предложения?


Редактировать: Это сервер разработки, где у нескольких других людей есть учетные записи. Тем не менее, ни один из них не является программистами Python (в настоящее время я пытаюсь их преобразовать). Я просто хочу, чтобы им было легко запустить эти сценарии и, возможно, осмотреть их логику, не подвергая непитонистов для деталей окружающей среды. Спасибо.

Это было полезно?

Решение

Если это только на одном сервере, то гибкость не имеет значения. Изменить Шебанг. Если вы беспокоитесь об этом, сделайте упакованную, установленную копию на сервере Dev, который не использует VirtualEnv. После того, как он не выйдет из разработки, будь то для локальных пользователей или пользователей в Гватемале, VirtualEnv больше не является правильным инструментом.

Другие советы

Используйте следующую магию (5) в начале сценария.

#!/usr/bin/env python

Изменить, какой виртуальный период активен, и он будет использовать Python из этого VirtualEnv. Деактивируйте VirtualEnv, он все еще работает.

Я бы проголосовал за добавление линии Шебанг в scriptname Указывая на правильный виртуальный питон. Вы просто говорите своим пользователям полный путь к scriptname (или поместите это на свой путь), и им даже не нужно знать, что это сценарий Python.

Если ваши пользователи являются программистами, то я не понимаю, почему вы не хотели бы, чтобы они знали/узнали о VirtualEnv.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top