【问题标题】:python script doesn't work properly under schedulerpython脚本在调度程序下无法正常工作
【发布时间】:2017-03-08 22:57:48
【问题描述】:

我在 Windows Server 2012 上有一个程序: - 从同一位置的文本文件中读取 sql 查询 - 从同一位置的文件中导入辅助函数 - 在 sql server 上执行查询(在同一网络中)并保存结果 - 根据结果创建一个 google 电子表格(使用位于同一位置的 API 凭据)

当我登录到服务器并在 cmd: python myscript.py 中执行文件时,一切都很好。但是,当我尝试从任务计划程序中执行相同操作时,它会失败。我收到 0x1 错误。

这是我在调度程序操作中添加的内容:

  • 程序/脚本 - 引用了 python.exe 的完整路径(位于 Anaconda 文件夹中)
  • 参数 - 引用 myscript.py 的完整路径
  • 开始于 - 空白

我已经尝试以我自己、SYSTEM、Administrators 的身份运行它。还尝试了最高权限和用户是否登录选项...还遵循了另一个解决方案,建议运行 cmd 然后“/c python full/path/to/myscript.py” 但它总是一样的。

这很令人沮丧。我意识到这不是严格意义上的编码相关问题,但我相信很多 python 程序员都有它。

【问题讨论】:

  • 请向我们展示一些代码、日志摘录或任何有助于诊断问题的内容。
  • @Maurice 谢谢。我不认为这是一个编码问题,因为它在手动运行时可以正常工作......当调度程序运行它时,在任务历史记录中它说它已成功完成(带有 0x1 消息)并且没有感叹号会暗示不同的问题.你指的是这些日志吗?我只是判断它不成功,因为没有预期的结果。
  • 您是否勾选/勾选了“无论用户是否登录都运行”?
  • 是否可以将对 python 的调用放在 Anaconda 文件夹中的 .bat 文件中并在那里进行测试,然后将调度程序的“编辑操作”标记为“开始于”同一个 Anaconda 文件夹?
  • 我不是说把你所有的 Python 脚本都移到 Anaconda 中,只是为了尝试从那里执行一个 .ps1 或一个 .bat 来消除由于以下原因而可能出现的问题那里的模块不可用等。然后将 'Edit' 设置为 'Start in' Anaconda,运行 .ps1 或 .bat 文件,它应该在与执行时相同的环境中。 Python 将从 .ps1 或 .bat 执行。

标签: python python-3.x scheduled-tasks


【解决方案1】:

您在使用调度程序启动非 python 任务时是否遇到同样的错误? 如果没有 - 我会尝试安装 clear Python 并使用

创建新的 schedule .bat 文件
powershell C:\Python27\python.exe C:\Python27\file.py
pause

【讨论】:

  • 否,其他非 python 任务运行正常。我已经尝试安装 clear python 并执行 .bat 文件,但我可以从 Anaconda 文件夹中执行相同的操作,就像上面 BillBell 建议的那样。无论如何感谢您的帮助。
  • 我很好奇为什么你应该通过调用powershell来包装python的执行。请解释一下好吗?
  • @BillBell 我刚刚复制粘贴了第一个创建的 .bat 文件示例。所以当然可以使用cmd_
猜你喜欢
  • 2022-08-09
  • 2019-04-04
  • 2020-12-05
  • 2014-12-07
  • 2015-04-04
  • 1970-01-01
  • 2018-01-03
  • 2013-07-10
  • 1970-01-01
相关资源
最近更新 更多