【问题标题】:Unable to Correctly Run Python Scripts Through Scheduler无法通过调度程序正确运行 Python 脚本
【发布时间】:2018-01-03 17:06:03
【问题描述】:

因此,我研究并测试了多种方法以使其发挥作用,但我们的 IT 人员和我自己都不确定如何进行。最终,我需要在服务器上运行三个 python 脚本,它们查看一组 Excel 文件并扫描它们以查找错误。如果有错误,它将通过电子邮件发送给适当的人以修复它们。当通过 CMD 提示运行时,脚本本身可以正常工作,无论是单独还是在批处理文件中。当从命令提示符手动运行时,这些脚本可以完美运行。

但是,当我尝试安排其中一个脚本或批处理文件时,它们并没有完整运行。我在脚本的早期有一个打印语句,并且在 Python.exe 中运行良好,但随后脚本突然退出。这让我觉得 Python 运行良好,但脚本的内容没有通过调度程序正确运行。

为了简化故障排除,我创建了两个测试脚本 test.py 和 test2.py,并将它们放在服务器的一个简单目录 C:\Store 中。第一个脚本所做的就是在控制台打印一些内容,然后将一些内容写入文件并将其保存到根目录,之后它将等待用户输入。第二个脚本更简单,只打印 Python 的体系结构及其构建路径。从命令提示符手动运行时,这两个脚本都能正常工作。

**test.py** Does NOT Work as scheduled task
import io

print('JUST WORRRRRKKK!')

with open("//kaicmapp/Store/foobar.txt", "w") as file:
    file.write("Hello!")

    file.close()

raw_input("press any button")



**test2.py**  Works as scheduled task
import sys  
import platform  

print("Python EXE     : " + sys.executable)  
print("Architecture   : " + platform.architecture()[0])   

raw_input("\n\nPress ENTER to quit")  

我在这些测试脚本中使用的是什么:

  • Python 2.7 32 位
  • Windows Server 2012
  • 具有管理员权限的 Windows 用户配置文件
  • Python 2.7 exe 添加为环境变量。在安装目录中重命名为 python2.exe,因为我在服务器上也安装了 Python 3 并且希望能够以独占方式运行它们

我尝试过的事情:

  • 以管理员身份运行任务计划程序
  • 使用/不使用最高权限运行
  • 仅在当前用户登录时运行
  • 无论当前用户是否登录、密码输入是否正确都运行
  • 在批处理文件中运行脚本
  • here 列出的解决方案在两个脚本中产生相同的结果

我注意到的事情:

  • 在调度器中使用python2 "C:\Store\test2.py" 将成功运行脚本,提示等待用户输入。调度程序的运行结果显示 操作成功完成。 (0x0)
  • 使用与上述相同的任务,但运行 test.py,不会从 Python shell 产生任何输出,它只是弹出并消失。调度程序的运行结果显示函数不正确。 (0x80070001)

关于如何进行的任何想法?我对服务器管理任务不是很熟悉,所以在这里我感觉很迷茫。

【问题讨论】:

    标签: python python-2.7 scheduled-tasks windows-server-2012


    【解决方案1】:
    猜你喜欢
    • 1970-01-01
    • 2019-05-11
    • 2015-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-06
    • 2014-04-17
    • 1970-01-01
    相关资源
    最近更新 更多