【问题标题】:Running python scripts in Anaconda environment through Windows cmd通过 Windows cmd 在 Anaconda 环境中运行 python 脚本
【发布时间】:2020-11-09 01:27:21
【问题描述】:

我有以下目标:我有一个 python 脚本,它应该在我的自定义 Anaconda 环境中运行。而且这个过程需要自动化。

我尝试的第一件事是在我的环境中打开的 Anaconda 命令提示符中使用 pyinstaller 创建我的脚本的 .exe 文件。并将 .exe 放入 Windows 任务计划程序。但我没有成功,因为我的脚本似乎太复杂了,包含太多导入,所以 pyinstaller 没有创建 .exe。

接下来我想到的是尝试使用具有适当属性的 Windows CMD 运行我的脚本,并将其放入 Windows 任务计划程序中。

现在我的问题是,是否有一种方法可以设置任务计划程序,以便它可以运行带有属性的 CMD,这将激活我的环境并在此环境下立即运行我的脚本?我需要每天在给定时间自动完成一次。

更新 3:我是瞎了还是怎么了? 我的意思是,这里是:

【问题讨论】:

    标签: python cmd anaconda scheduled-tasks pyinstaller


    【解决方案1】:

    你可以

    1. 创建一个.bat 文件(例如run_python_script.bat),其内容如下所示。
    2. 在“任务计划程序”中创建任务以运行.bat 文件。

    1.a. conda 环境中的 .bat 文件内容

    1. 检查您的<condapath>。您的conda.exe 位于<condapath>/Scripts
    2. 放入您的 .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。在任务计划程序中创建任务

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

    附录:使用 Anaconda 创建 venv

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

    1. 检查您的&lt;condapath&gt;。您的conda.exe 位于&lt;condapath&gt;/Scripts
    2. 通过在&lt;venv_folder&gt; 中运行以下命令,为您想要的文件夹创建虚拟环境(我们称之为venv_folder
    <condapath>\python.exe -m venv venv
    
    1. 现在,您的 &lt;path_to_python_exe&gt; 将变为 &lt;venv_folder&gt;\venv\Scripts.python.exe
    2. 如果您需要将软件包安装到此虚拟环境,请使用
    <venv_folder>\venv\Scripts.python.exe -m pip install <package_name>
    

    【讨论】:

    • 我下载了 Anaconda 来自己测试,似乎用conda create 创建的环境不是“常规的 python 虚拟环境”。我编辑了答案以包括如何将 venv 与 Anaconda 一起使用的说明。
    • 我明白了。我更新了 conda 环境的答案。
    • 我再次测试了答案并检查了它是否适用于任务计划程序。在我的电脑上,一切正常。我只能想到两个可能的选项(1)文件夹或文件有错字(2)一些权限问题使任务计划程序无法访问脚本。在这种情况下,我会尝试在另一个文件夹中运行测试脚本。那么,当双击.bat 时,它会运行脚本吗?怎么样,如果你将蝙蝠移动到任何其他目录并双击?那它也有用吗?
    • 很高兴听到您成功了。我不得不说我不知道​​为什么任务计划程序无法访问您的 Dropbox 文件夹。也许这可能是另一个问题的主题(也许在SuperUser)。
    • 您无法想象我对您的支持有多感激!即使是一个大大的谢谢也不够。我终于更新了问题,也许你可以看到区别
    猜你喜欢
    • 2019-02-25
    • 1970-01-01
    • 1970-01-01
    • 2020-07-04
    • 1970-01-01
    • 1970-01-01
    • 2020-02-10
    • 2011-07-12
    • 2016-07-16
    相关资源
    最近更新 更多