python - Python 通过 Windows 任务计划程序无法导入已安装的包
问题描述
我有一个要使用 Windows 任务计划程序运行的 Python 脚本。我可以启动脚本,但是一旦我添加
将熊猫导入为 pd
脚本无法完成。因此,我假设对环境的调用设置不正确,但我不确定如何解决这个问题。
我在 Win10 x64 上使用 Anaconda 3.7.4 x64。我所有的软件包都安装到 anaconda 基础环境中,没有使用 venv(由于公司准则)。
MWE:
import sys
print(sys.version)
print(sys.executable)
input("Hello")
import numpy as np
print("done")
从 IDE 启动时,我得到(在 Hello 后按一个键)
3.7.4 (default, Aug 9 2019, 18:34:13) [MSC v.1915 64 bit (AMD64)]
C:\Prog\Anaconda3\pythonw.exe
Hello
done
作为计划任务启动时,使用
C:\Prog\Anaconda3\python.exe
作为可执行文件和脚本的完整路径作为选项,我的结果是
3.7.4 (default, Aug 9 2019, 18:34:13) [MSC v.1915 64 bit (AMD64)]
C:\Prog\Anaconda3\python.exe
Hello
并且脚本意外完成。因此,我假设在尝试导入 pandas 时脚本会崩溃。这适用于从 IDE 调用的版本,其中链接了相同的可执行文件 (python.exe)。但是请注意,我从 sys.executable 检索的可执行文件似乎是 pythonw.exe。
如何正确配置我的任务,以便成功导入熊猫?
谢谢!
解决方案
使用任务计划程序启动脚本的最简单方法是使用批处理文件(链接)并在任务计划程序的“操作”部分启动批处理文件。在批处理文件中,您指定 Python 可执行文件和脚本,如下所示:
“C://users/document/path/to/python.exe” “C://users/document/path/to/scripts/script.py” 暂停
如果这还不够清楚,我邀请您阅读这篇文章:在预定时间运行批处理文件
推荐阅读
- html - 软连字符 () 打破了 flexbox 中的中心对齐
- sql - SQL Server:从一个表运行两个左连接时存储过程很慢
- javascript - 赛普拉斯:单击按钮后无法下载文件
- python - VoiceChannel.members 在 discord.py 中返回一个空列表
- android - 如何在 Android 管理 api(工作资料)中启用辅助功能服务?
- php - Laravel:即使已填写,注册也会为用户名提交空值
- python - python中电报机器人中的回调和if条件
- python - 我收到错误 AttributeError: 'NoneType' 对象没有属性 'get'
- windows - Windows 是否有 docker 日志查看器或调试模式?
- google-workflows - 有没有办法暂停工作流程的执行?