通过Windows cmd在Anaconda环境中运行python脚本

Out*_*law 3 python cmd scheduled-tasks pyinstaller anaconda

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

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

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

现在我的问题是是否有办法设置 Task Scheduler 以便它可以运行带有属性的 CMD,这将激活我的环境并在这个环境中立即运行我的脚本?我需要每天在给定时间自动完成一次。

更新 3:我是瞎子还是什么? 在此处输入图片说明 我的意思是,这里是:在此处输入图片说明

np8*_*np8 5

你可以

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

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

"<path_to_python_exe>" "<path_to_python_script>" [<arguments>]
Run Code Online (Sandbox Code Playgroud)

在哪里

  • <path_to_python_exe>是你的 python 可执行文件的路径。如果您使用的是虚拟环境 ( venv),则使用python.exe/venv/Scripts文件夹中找到的
  • <path_to_python_script> 是你的python 脚本的路径。
  • [<arguments>] 表示可选参数(如果您需要为脚本提供参数)

2.在Task Scheduler中创建任务

  1. 转到“任务计划程序”->“创建基本任务”
  2. 提供名称和时间信息
  3. 将您的run_python_script.bat.

附录:venv使用 Anaconda创建

似乎conda createcommand 没有创建与python -m venvcommand类似的虚拟环境。使用venv创建普通的 python 虚拟环境

  1. 检查您的<condapath>. 您conda.exe位于<condapath>/Scripts
  2. 创建虚拟环境中文件夹要(让我们叫它venv_folder),在运行下面的命令 <venv_folder>
<condapath>\python.exe -m venv venv
Run Code Online (Sandbox Code Playgroud)
  1. 现在,你的<path_to_python_exe>将是<venv_folder>\venv\Scripts.python.exe
  2. 如果您需要将软件包安装到此虚拟环境中,请使用
<venv_folder>\venv\Scripts.python.exe -m pip install <package_name>
Run Code Online (Sandbox Code Playgroud)