В чем разница между активацией среды anaconda и непосредственным запуском исполняемого файла python? - PullRequest
0 голосов
/ 29 мая 2018

Я настроил несколько сред Python, используя Anaconda.

Обычно, чтобы запустить скрипт "вручную", я бы открыл командную строку и затем набрал:

activate my-env
python path/to/my/script.py

Fine.

Теперь я пытаюсь запустить скрипт автоматически, используя планировщик, и мне было интересно, в чем разница между

  1. Написание пакета, который активирует среду и выполняет сценарий(как в приведенном выше фрагменте)

  2. Вызов непосредственно исполняемого файла python из среды (в каталоге envs/my-enjv/), как показано ниже:

    /path/to/envs/my-env/python.exe path/to/my/script.py

Кажется, оба работают нормально.Есть ли разница?

Ответы [ 2 ]

0 голосов
/ 06 июня 2019

Просто извлеките переменную PATH в вашей среде.После активации conda он был расширен на

\Anaconda3;
\Anaconda3\Library\mingw-w64\bin;
\Anaconda3\Library\usr\bin;
\Anaconda3\Library\bin;
\Anaconda3\Scripts;
\Anaconda3\bin;

Это не имеет большого значения, если вы просто используете стандартную библиотеку в своем коде.Однако, если вы полагаетесь на внешние пакеты, такие как pandas, это является обязательным условием для поиска модулей.

0 голосов
/ 29 мая 2018

Я не претендую на звание эксперта, но вот мои 2 цента.

Для небольших сценариев нет никакой разницы.

Вы должны заметить разницу при вызове внешних модулей / пакетов.conda activate изменяет системный путь, чтобы изменить способ командной строки для поиска соответствующих возможностей.

Если вы указываете полный путь к интерпретатору и полный путь к изолированному сценарию, тогда оболочке не нужносделать поиск, так как это имеет приоритет над путем.Это означает, что вы можете оказаться в ситуации, когда интерпретатор может видеть сценарий, но не может видеть зависимости.

Если вы следуете процессу conda activate, и среда правильно упакована, оболочка сможет отследитьлюбые дополнительные ресурсы.

РЕДАКТИРОВАТЬ: Идея этого заключается в мобильности.Если администратор был осторожен в настройке системы, то сценарии должны иметь соответствующую видимость - то есть видеть все в своей среде и все в основной установке системы.

Можно выполнять полный путь при каждом вызовеинтерпретатор и сценарий или расположение пакета, но что происходит, когда вам нужно перенести его на другой компьютер?Вам нужно было бы потратить много времени, чтобы все настроить точно так, как это было раньше.С другой стороны, вы можете следить за процессом упаковки, и системный путь отследит все за вас.

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