通过 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>]
&lt;env_name&gt; 是 conda 环境的名称。 &lt;folder_for_your_py_script&gt; 是包含 &lt;scriptname.py&gt; 的文件夹 &lt;scriptname.py&gt; 是您要启动的脚本。 [&lt;arguments&gt;] 表示可选参数(如果您需要为脚本提供参数)

1.b。带有venv的.bat文件内容

"<path_to_python_exe>" "<path_to_python_script>" [<arguments>]

在哪里

&lt;path_to_python_exe&gt; 是您的 python 可执行文件的路径。如果您使用的是虚拟环境 (venv),请使用 /venv/Scripts 文件夹中的 python.exe &lt;path_to_python_script&gt; 是您的 Python 脚本的路径。 [&lt;arguments&gt;] 表示可选参数(如果您需要为脚本提供参数)

2。在任务计划程序中创建任务

    转到“任务计划程序”->“创建基本任务” 提供名称和时间信息 将run_python_script.bat 的路径添加到“程序/脚本”中。

附录:使用 Anaconda 创建 venv

似乎conda create 命令不会创建与python -m venv 命令类似的虚拟环境。用venv创建普通的python虚拟环境

    检查您的&lt;condapath&gt;。您的conda.exe 位于&lt;condapath&gt;/Scripts。 通过在&lt;venv_folder&gt; 中运行以下命令,为您想要的文件夹创建虚拟环境(我们称之为venv_folder
<condapath>\python.exe -m venv venv
    现在,您的 &lt;path_to_python_exe&gt; 将变为 &lt;venv_folder&gt;\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?

Windows10中Anaconda配合Pycham使用

搭建Windows11下yolov5环境

Aanconda+虚拟环境+jupyter notebook配置

Windows下Anaconda安装 python + tensorflow GPU版