python использование файла .exe в виртуальной среде - PullRequest
0 голосов
/ 03 марта 2020

В чем разница между запуском сценария с помощью первого источника:

source /venv/bin/activate
python script.py

и запуском сценария с действительным python exe?

/venv/bin/python script.py

всегда выполняйте эти две команды сделать то же самое? Проблема, с которой я сталкиваюсь, заключается в том, что если script.py вызывает другие python сценарии, а параметры и пакеты, которые находятся в venv, не работают.

1 Ответ

0 голосов
/ 03 марта 2020

Это зависит от того, как script.py запускает другие скрипты. Если он использует sys.executable, то есть текущий python, /venv/bin/python, тогда обе команды эквивалентны.

Если script.py запускает другие сценарии с использованием оболочки (os.system, subprocess, et c) тогда первая форма является предпочтительной, поскольку она устанавливает $PATH для всех подпроцессов, так что все сценарии python используют одну и ту же виртуальную среду.

И последнее замечание. Если некоторые сценарии, запускаемые из script.py, имеют фиксированный шебанг, такой как #!/usr/bin/python, эти сценарии не будут выполняться в вашей виртуальной среде, независимо от того, 1-й или 2-й способ запуска script.py.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...