无法通过调度程序正确运行Python脚本

时间:2017-07-27 19:45:39

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

所以我已经研究并测试了多种方法来实现这一点,但我们的IT人员和我自己都不确定如何继续。最后,我需要在服务器上运行三个python脚本,这些脚本查看一组Excel文件并扫描它们是否有错误。如果有错误,它会通过电子邮件向适当的人员发送修复程序。当单独或在批处理文件中运行CMD提示时,脚本本身可以正常工作。从命令提示符手动运行时,这些脚本可以正常工作。

但是,当我尝试安排其中一个脚本或批处理文件时,它们不会完整运行。我在脚本的早期有一个print语句,并且在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)

有关如何进行的任何想法?我对服务器管理任务不是很熟悉,所以我觉得这里很丢失。