我使用Anaconda设置了多个python环境。
通常,要“手动”运行脚本,我会打开一个命令行,然后输入:
activate my-env
python path/to/my/script.py
精细。
现在我正在尝试使用调度程序自动运行脚本,我想知道它之间的区别是什么
编写一个激活环境并执行脚本的批处理(如上面的代码片段)
直接从环境中调用python可执行文件(在envs/my-enjv/
目录中),如下所示:
/path/to/envs/my-env/python.exe path/to/my/script.py
两者似乎都很好。有什么不同吗?
答案 0 :(得分:1)
我不是自称是专家,但这是我的2美分。
对于小脚本,不,没有区别。
调用外部模块/软件包时应注意区别。 conda activate
改变系统路径以更改命令shell搜索适当功能的方式。
如果提供解释器的完整路径以及隔离脚本的完整路径,则shell不需要执行查找,因为它优先于路径。这意味着您可能处于解释器可以看到脚本但看不到依赖关系的情况。
如果您遵循conda activate
进程,并且环境已正确打包,那么shell将能够跟踪任何其他资源。
可以对解释器和脚本或程序包位置的每次调用进行完整路径,但是当您需要将其移动到另一台计算机时会发生什么?您需要花费大量时间完全按照以前的方式设置所有内容。另一方面,您可以按照包过程进行操作,系统路径将为您追踪所有内容。
答案 1 :(得分:0)
只需在您的环境中检出PATH变量。激活conda后,将其扩展了
\Anaconda3;
\Anaconda3\Library\mingw-w64\bin;
\Anaconda3\Library\usr\bin;
\Anaconda3\Library\bin;
\Anaconda3\Scripts;
\Anaconda3\bin;
如果您只是在代码中使用标准库,那么这并没有太大的区别。但是,如果您依赖诸如pandas之类的外部软件包,则必须先找到模块。