python - 激活 virtualenv 并从 .bat 运行 .py 脚本

标签 python batch-file cmd virtualenv

我想使用 Windows 任务计划程序在虚拟环境中运行 python 脚本。我希望调度程序运行一个 .bat 文件,它将

  1. 激活虚拟环境
  2. 运行脚本

这些步骤在命令行中一起工作,它们在 .bat 中单独工作,但我似乎无法让它们在 .bat 中一起工作。当我尝试执行 python 脚本时,virtualenv 似乎没有完全激活,我很困惑为什么。

我的 .bat 看起来像这样:

call workon venv
cd path/to/Python/proj
python -m script.py

我尝试在调用 workon 后立即添加超时,并尝试将 workon 移动到从我的第一个文件调用的单独的 .bat 中,但其他行仍然执行在激活 virtualenv 之前。非常感谢任何帮助!

最佳答案

在.bat 中运行时不需要激活虚拟环境。您需要做的就是在您的虚拟环境中运行 python.exe 文件。

{虚拟环境目录路径}/Scripts/python.exe path/to/your/file.py

在 Windows 任务计划程序中,您可以指定打开命令提示符的路径。因此,您需要做的就是在添加操作时,在 Program/script 字段中使用 python 的路径,在 Add arguments 字段中使用要运行的文件的名称,以及 Start in 字段中的 file.py 的路径。

windows task scheduler example

P.S 如果您正在 python 文件中读取或写入文件,请注意您的路径将相对于您在操作窗口的 start in 字段中指定的路径

关于python - 激活 virtualenv 并从 .bat 运行 .py 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47425520/

相关文章:

gradle - 无法使用Gradle构建Git项目

python - Docker交互模式和执行脚本

python - 找不到满足lxml新闻-请要求的版本

python - 如何修复 Firebase_Admin 错误 TypeError : __init__() got an unexpected keyword argument 'status'

c# - 在 MSI 包上执行批处理命令

batch-file - 如何检查cmd文件中的空值?

php - 如何在共享驱动器上执行 xpdf (pdftotext.exe)?

python - 从元组中删除元素时额外的空元素

c# - 当我在 C# 中执行 .bat 文件时无法获得输出

java - 如何从 java 应用程序运行 Windows 命令提示符?