在 Windows 上通过批处理安排 Python 脚本(使用 Anaconda)

问题描述 投票:0回答:5

我有一个每天运行的脚本,想为其制定一个时间表,我已经尝试过一个批处理文件:

start C:\Users\name\Miniconda3\python.exe C:\script.py

我能够在其中运行一些基本的 python 命令,问题是我的实际脚本使用了一些随 Anaconda 安装的库,并且我无法在脚本中使用它们,因为 Anaconda 不会加载。

我正在 Windows 上工作,找不到启动 Anaconda 并每天自动运行我的脚本的方法。

python batch-file scheduled-tasks anaconda conda
5个回答
20
投票

我在直接通过环境调用 python 时会有点小心,因为人们永远不知道 activate 函数的内部结构是否已更改。

我只是使用基本的bat脚本来帮助我。

SET log_file=%cd%\logfile.txt
call C:\Anaconda3\Scripts\activate.bat
cd \script_directory
python script.py arg1 arg2 > %log_file%

此脚本会在运行bat的任何地方保存日志文件,通过激活(在本例中为标准)调用正确的环境,并将所有标准输出引导到日志文件中以进行进一步调查。

然后只需将 Windows 任务计划程序指向该脚本并设置您希望日志文件出现的主目录。


14
投票

我建议使用您需要的包创建一个 Anaconda 环境,然后使用该环境中的 python 来运行您的脚本。阅读有关 Anaconda 环境的信息此处

例如...

假设您创建了一个名为 cristians_env 的环境

conda create --name cristians_env

然后安装您需要的软件包

conda install pandas

然后,您需要做的就是从批处理脚本中执行此操作(假设您使用 Anaconda 2)

start C:\Users\name\Anaconda2\envs\cristians_env\bin\python C:\script.py

瞧!您正在使用批处理脚本中的 anaconda 环境!


8
投票

几天前我也遇到了类似的问题。 我发现,运行位于 anaconda“Scripts”文件夹中的 'activate.bat' 脚本后,anaconda 提示符只不过是您的通常的 cmd 提示符。 因此,要在 anaconda 中运行 python 脚本,您只需在批处理文件中写入 2 行即可。 (打开记事本并写入下面提到的行。以.bat扩展名保存文件)

  1. 调用 C:\....anaconda3\Scripts ctivate.bat 的路径
  2. 调用 python C:\script 的路径\Script.py

然后您安排这个批处理文件按照您的意愿运行,它将运行没有问题。


1
投票

找到了解决方案,我将“activate.bat”文件复制到“C:\Users\yo\Miniconda3\Scripts”中,并将其重命名为schedule.bat,并将我的脚本(复制粘贴)添加到文件末尾。

然后我可以在Windows上安排一个每天执行schedule.bat的任务


0
投票

我花了两天时间才找到解决方案。希望能帮助到你。 就 Windows 操作系统而言,命令提示符和 Anaconda 提示符基本上是相同的。 现在,您想要使用 Anaconda 提示符每天按计划运行 Python 脚本。步骤如下:

  1. 下载Python(我下载的是Python 3.12)并在环境变量中添加Path。

  2. 打开 CMD 并将目录更改为 python.exe 可用的位置。在此 cmd 中输入“pip install ”,获取运行 python 脚本所需的所有库。

  3. 编写一个Windows批处理文件(.bat),如下所示

Copy paste this to your .bat file and change paths for your system

  1. 现在创建一个基本任务来运行一个程序,该程序将是.bat文件。

  2. 这样您就可以通过调度运行您的Python脚本。我很乐意在这里回复以获取进一步的帮助。

© www.soinside.com 2019 - 2024. All rights reserved.