【问题标题】:Schedule a Python script via batch on windows (using Anaconda)在 Windows 上通过批处理调度 Python 脚本(使用 Anaconda)
【发布时间】:2018-03-08 08:25:09
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: python batch-file scheduled-tasks anaconda conda


    【解决方案1】:

    在直接通过环境调用 python 时我会小心一点,因为永远不知道激活函数的内部结构是否发生了变化。

    我只是在使用基本的 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 任务计划程序指向脚本并设置您希望日志文件出现的主目录。

    【讨论】:

      【解决方案2】:

      我建议使用您需要的软件包创建一个 Anaconda 环境,然后使用该环境中的 python 来运行您的脚本。了解 Anaconda 环境 here

      例如...

      假设您创建了一个名为 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 环境!

      【讨论】:

      • 谢谢!我刚刚找到了另一种方法,但你的方法似乎更好!
      • 非常感谢你发布这个,让我头疼
      • 但是这样一些模块可能无法加载,例如我正在使用请求,我收到错误"Can't connect to HTTPS URL because the SSL module is not available.",我必须调用.....\activate.bat文件之前提到的@HarshaLimaye
      【解决方案3】:

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

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

      然后您安排此批处理文件按您的意愿运行,它将毫无问题地运行。

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-06-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多