答案1
我的 workon.bat 脚本无法正确设置 Env 属性,但这个最终命令在任务计划程序中起作用:
cmd /C c:/Users/name/Env/workon_name/Scripts/activate.bat & python run_script.py
答案2
您创建一个 Windows 批处理文件,例如 MyProgram.bat,其内容如下:
cd C:\PathToYourPythonFile
call C:\PathToYourCondaInstallation\Scripts\activate.bat YourEnv
python YourPythonFile.py
确保YourEnv
用之前设置的 conda 环境进行替换。
您可以从任务计划程序启动批处理文件,无需任何额外的参数。
添加在:
或者,为了避免弹出窗口,我让任务计划程序调用一个三行的 MyProgram.vbs 文件,该文件调用上述批处理文件,如下所示:
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\PathToYourBatchFile\MyProgram.bat" & Chr(34), 0
Set WshShell = Nothing
总是有三个文件有点尴尬(Windows 上你还能指望什么……)但我对文件使用相同的名称,所以没问题。我很高兴听到更好的解决方案。
答案3
如果你创建一个批处理文件,例如test.bat
,首先激活你的虚拟环境,然后运行你的 Python 脚本,结果会怎样?例如:
env\scripts\activate
D:\Python\Aldabra\env\Scripts\python.exe "D:\Python_scpt\test.py"
然后从 Windows 任务计划程序运行该脚本。
在您的脚本中,我还建议使该env\scripts\activate
部分不依赖于脚本的运行位置。即使其为绝对路径。
答案4
当您直接调用python.exe
虚拟环境中的文件时,您实际上是间接激活了virtualenvironment
。
当您输入 时.\env\Scripts\activate
,您只是在更改路径变量,这样包含虚拟环境中安装的库的目录路径Lib
将首先出现。因此,当 python 搜索这些库时,它会首先在虚拟环境中找到这些库并使用它们。
如果你没有其他限制,那么只需使用
C:\path_to_virtualenvip\python.exe C:\path_to_python_file.py
应该足以在你的虚拟环境中运行 python 文件。