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

У меня есть virtualenv, и virtualenvwrapper, установленный на общем сервере Linux с настройками по умолчанию (virtualenvs, находятся в ~/.virtualenvs). У меня есть несколько скриптов Python, которые могут только быть запущены, когда корректный virtualenv активируется.

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

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


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

39
задан Sheena 7 October 2014 в 06:28
поделиться

3 ответа

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

0
ответ дан 27 November 2019 в 02:11
поделиться

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

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

6
ответ дан 27 November 2019 в 02:11
поделиться

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

#!/usr/bin/env python

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

104
ответ дан 27 November 2019 в 02:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: