Источник виртуальной среды, используя python - PullRequest
0 голосов
/ 19 февраля 2020

На серверах, на которых я работаю, есть виртуальная среда, которую можно активировать с помощью source /bin/virtualenv-activate. Мне нужна эта виртуальная среда из-за инструмента командной строки, который доступен только там. Давайте назовем это fancytool. Я хотел бы использовать fancytool из сценария python и вернуть его вывод в переменную python. Сценарий python не запускается в виртуальной среде, поэтому я подумал о чем-то вроде этого:

os.system('source /bin/virtualenv-activate')
results = os.popen(fancytool).read()

Однако это возвращает:

sh: 1: source: not found
sh: 1: fancytool: not found

Если я введу source /bin/virtualenv-activate в терминале а потом fancytool все работает нормально. Как я могу добиться этого также в python сценарии?

1 Ответ

1 голос
/ 19 февраля 2020

Вы должны добавить шебанг в начало скрипта, чтобы активировать env

#!/path/to/venv/bin/python 

# your code here

Однако полагаться на знание venv в ваших скриптах считается плохой практикой

...