通过 Windows cmd 在 Anaconda 环境中运行 python 脚本
Posted
技术标签:
【中文标题】通过 Windows cmd 在 Anaconda 环境中运行 python 脚本【英文标题】:Running python scripts in Anaconda environment through Windows cmd 【发布时间】:2020-11-09 01:27:21 【问题描述】:我有以下目标:我有一个 python 脚本,它应该在我的自定义 Anaconda 环境中运行。而且这个过程需要自动化。
我尝试的第一件事是在我的环境中打开的 Anaconda 命令提示符中使用 pyinstaller 创建我的脚本的 .exe 文件。并将 .exe 放入 Windows 任务计划程序。但我没有成功,因为我的脚本似乎太复杂了,包含太多导入,所以 pyinstaller 没有创建 .exe。
接下来我想到的是尝试使用具有适当属性的 Windows CMD 运行我的脚本,并将其放入 Windows 任务计划程序中。
现在我的问题是,是否有一种方法可以设置任务计划程序,以便它可以运行带有属性的 CMD,这将激活我的环境并在此环境下立即运行我的脚本?我需要每天在给定时间自动完成一次。
更新 3:我是瞎了还是怎么了? 我的意思是,这里是:
【问题讨论】:
【参考方案1】:你可以
-
创建一个
.bat
文件(例如run_python_script.bat
),其内容如下所示。
在“任务计划程序”中创建任务以运行.bat
文件。
1.a. conda 环境中的 .bat 文件内容
-
检查您的
<condapath>
。您的conda.exe
位于<condapath>/Scripts
。
放入您的 .bat 文件中
call "<condapath>\Scripts\activate.bat" <env_name> & cd "<folder_for_your_py_script>" & python <scriptname.py> [<arguments>]
<env_name>
是 conda 环境的名称。
<folder_for_your_py_script>
是包含 <scriptname.py>
的文件夹
<scriptname.py>
是您要启动的脚本。
[<arguments>]
表示可选参数(如果您需要为脚本提供参数)
1.b。带有venv的.bat文件内容
"<path_to_python_exe>" "<path_to_python_script>" [<arguments>]
在哪里
<path_to_python_exe>
是您的 python 可执行文件的路径。如果您使用的是虚拟环境 (venv
),请使用 /venv/Scripts
文件夹中的 python.exe
<path_to_python_script>
是您的 Python 脚本的路径。
[<arguments>]
表示可选参数(如果您需要为脚本提供参数)
2。在任务计划程序中创建任务
-
转到“任务计划程序”->“创建基本任务”
提供名称和时间信息
将
run_python_script.bat
的路径添加到“程序/脚本”中。
附录:使用 Anaconda 创建 venv
似乎conda create
命令不会创建与python -m venv
命令类似的虚拟环境。用venv创建普通的python虚拟环境
-
检查您的
<condapath>
。您的conda.exe
位于<condapath>/Scripts
。
通过在<venv_folder>
中运行以下命令,为您想要的文件夹创建虚拟环境(我们称之为venv_folder
)
<condapath>\python.exe -m venv venv
-
现在,您的
<path_to_python_exe>
将变为 <venv_folder>\venv\Scripts.python.exe
。
如果您需要将软件包安装到此虚拟环境,请使用
<venv_folder>\venv\Scripts.python.exe -m pip install <package_name>
【讨论】:
我下载了 Anaconda 来自己测试,似乎用conda create
创建的环境不是“常规的 python 虚拟环境”。我编辑了答案以包括如何将 venv
与 Anaconda 一起使用的说明。
我明白了。我更新了 conda 环境的答案。
我再次测试了答案并检查了它是否适用于任务计划程序。在我的电脑上,一切正常。我只能想到两个可能的选项(1)文件夹或文件有错字(2)一些权限问题使任务计划程序无法访问脚本。在这种情况下,我会尝试在另一个文件夹中运行测试脚本。那么,当双击.bat
时,它会运行脚本吗?怎么样,如果你将蝙蝠移动到任何其他目录并双击?那它也有用吗?
很高兴听到您成功了。我不得不说我不知道为什么任务计划程序无法访问您的 Dropbox 文件夹。也许这可能是另一个问题的主题(也许在SuperUser)。
您无法想象我对您的支持有多感激!即使是一个大大的谢谢也不够。我终于更新了问题,也许你可以看到区别以上是关于通过 Windows cmd 在 Anaconda 环境中运行 python 脚本的主要内容,如果未能解决你的问题,请参考以下文章
PyCharm+cmd中使用Anaconda 与 新建Python环境(Windows)
import bcrypt 在 anaconda cmd 上失败并抛出错误“无法导入 _bcrpyt”但适用于 windows cmd?