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

Cri*_* M. 9 python batch-file scheduled-tasks anaconda conda

我有一个每天运行的脚本,想要为它制定时间表,我已经尝试使用以下文件进行批处理:

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

而且我无法在其中运行一些基本的python命令,问题是我的实际脚本使用了随Anaconda安装的一些库,由于无法加载Anaconda,因此我无法在脚本中使用它们。

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

小智 8

我建议使用所需的软件包创建Anaconda环境,然后使用该环境中的python运行脚本。在这里阅读有关Anaconda环境的信息

例如...

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

conda create --name cristians_env
Run Code Online (Sandbox Code Playgroud)

然后安装所需的软件包

conda install pandas
Run Code Online (Sandbox Code Playgroud)

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

start C:\Users\name\Anaconda2\envs\cristians_env\bin\python C:\script.py
Run Code Online (Sandbox Code Playgroud)

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


Har*_*aye 7

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

  1. 调用 C:\.... anaconda3\Scripts\activate.bat 的路径
  2. 调用 python C:\path 到你的 script\Script.py

然后你安排这个批处理文件按照你的意愿运行,它会毫无问题地运行。


小智 5

我直接在环境中调用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%
Run Code Online (Sandbox Code Playgroud)

该脚本将保存蝙蝠从何处运行的日志文件,通过激活(在本例中为标准)调用正确的环境,并将所有标准输出定向到日志文件中以进行进一步调查。

然后,只需将Windows Task Scheduler指向该脚本,并设置要在其中显示日志文件的主目录即可。