我已经尝试将.py文件转换为.exe文件。不幸的是,.exe文件存在问题;我相信这是因为我的代码相当复杂。 所以,我试图直接安排我的.py文件与任务计划程序,但每次我这样做,然后运行它看看是否有效,弹出一个窗口,并询问我如何打开程序?-.- < / p>
你们是否知道如何使用Task Scheduler成功安排我的.py文件?请帮助,谢谢
Windows 10 Python 3.5.2
答案 0 :(得分:22)
创建exe应该是最好的方法。但是如果你想用任务调度程序运行它,你可以这样做:
要确保您的Python脚本无论计划任务使用的登录帐户如何都会运行,并避免混淆在混合环境(64位或32位)中使用哪个版本的Python,建议您运行Python可执行文件,其Python文件名称作为可执行文件的参数。
假设您要运行的脚本是E:\ My script.py。而不是直接运行脚本,指示任务计划程序以脚本作为参数运行python.exe。例如:
C:\ Python27 \ ArcGIS10.2 \ python.exe&#34; E:\ My script.py&#34;
python.exe的位置取决于您的安装。如果你不知道它在哪里,你可以发现它的位置;将以下代码复制并粘贴到新的Python脚本中,然后执行该脚本。该脚本将打印python.exe的位置以及有关Python环境的其他信息。
import sys
import platform
import imp
print("Python EXE : " + sys.executable)
print("Architecture : " + platform.architecture()[0])
print("Path to arcpy : " + imp.find_module("arcpy")[1])
raw_input("\n\nPress ENTER to quit")
确定python.exe的位置后,这是在任务计划程序的“操作”面板中输入的内容:
如果脚本有其他参数(参数),请在脚本路径后提供。希望这会有所帮助。
答案 1 :(得分:7)
您应该在Action
标签中进行设置:
"C:\Users\Me\AppData\Local\Programs\Python\Python36\python.exe"
"C:\Users\Me\Desktop\mypythonsrcipt.py"
如果这不起作用,请尝试:
"C:\Users\Me\AppData\Local\Programs\Python\Python36\python.exe"
"mypythonsrcipt.py"
"C:\Users\Me\Desktop\"
每次修改任务时,General
标签中的用户帐户都会切换到中等强制级别。所以我必须重新打开这个用户并将用户帐户设置回我的用户名:(参见此question)
如果仍然无法运行脚本,请进入事件日志Applications and Service Log/Microsoft/Windows/TaskScheduler/Operational
(右键单击以启用它)并查找错误。
答案 2 :(得分:4)
我几乎为此失去了头发。由于执行上述操作,我总是得到0x1。一位经验丰富的Windows管理员告诉我:
创建一个批处理文件:
SET logfile="C:\Reports\batch.log"
@echo off
@echo Starting Script at %date% %time% >> %logfile%
"C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\python.exe" "C:\Users\sys_www\source\repos\hardware\ReportAssembler.py"
@echo finished at %date% %time% >> %logfile%
然后在任务配置的操作部分中提供批处理文件。还需要注意的是,执行脚本的用户实际上可以访问在python程序运行时编写的所有文件。
我尝试使用脚本作为参数,并在programm / script中使用python exe。首先,我出现错误“ Windows Scheduled Tasks not running”。 然后经过一些配置后,我得到了错误0x1,该错误告诉我什么都没有。
答案 3 :(得分:1)
您执行的脚本将是您的python目录中的exe ex)C:\ Python27 \ python.exe
&#34;参数&#34;将是你的脚本的路径 ex)C:\ Path \ To \ Script.py
所以想想这样:你不是在技术上执行你的脚本作为计划任务。您正在为您的计算机执行root python exe,并将脚本作为参数提供。
答案 4 :(得分:0)
这对我有用,您可以尝试使用“操作”窗格: The Action pane
请注意,py文件的路径在双引号中添加参数:$(Arg0)
在“常规”选项卡中选中“以最高特权运行”,最好在“设置”选项卡的下拉菜单中选择“并行运行新实例”。
毕竟,您可以在“触发器”选项卡中设置任务计划以检查更改的效果(请记住,在“常规”选项卡中选择“运行是否登录用户”)。
答案 5 :(得分:0)
由于某些原因,Windows任务计划程序会在环境中启动python.exe,但在导入模块语句中它们将失败。我不得不使用一种使用CMD.exe的解决方法,并传递命令以在给定文件夹中运行python脚本。
使用程序
CMD
然后选择选项卡:
/c python main.py
并在选项卡开始于:
中填写源位置C:\Users\...
不确定是什么原因。先前描述的解决方案都不适用于我。
答案 6 :(得分:0)
这绝对对我有用。我正在使用Windows 10专业版,并且花了将近6个月的时间才能获得此解决方案。感谢上面的建议。
我遵循了这个建议,该建议立即并顺利进行。我所做的只是指示调度程序以我的脚本作为参数运行python.exe,正如下面这个同伴
所解释的那样这是我做的假设您要运行的脚本是E:\ My script.py。而不是直接运行脚本,而是指示任务计划程序以脚本作为参数运行python.exe。例如:
C:\ Python27 \ ArcGIS10.2 \ python.exe
“ E:\ My script.py”
python.exe的位置取决于您的安装。如果您不知道它在哪里,则可以找到它的位置;将以下代码复制并粘贴到新的Python脚本中,然后执行该脚本。该脚本将打印python.exe的位置以及有关您的Python环境的其他信息。
答案 7 :(得分:0)
只要您的脚本不需要花费很多时间来完成,Biswaranjan Naik的答案就可以正常工作。
我在Windows任务计划程序中使用了一些不同的方法:
在“程序/脚本”文本框中,设置Python可执行文件的路径(在我的情况下位于virtualenv文件夹内)。
“添加参数” =仅是您的Python脚本的名称。
“开始于” = Python脚本的完整路径(无name.py)。
通过这种方式运行脚本,控制台保持打开状态并等待结束。
答案 8 :(得分:0)
带有批处理文件的调度程序对我有用,但除了上述特定 python.exe 的完整路径之外,您可能还需要/想要为所有其他 python 包启动 conda 环境。这一行可以添加到批处理文件中:
call C:\ProgramData\Anaconda3\condabin\conda.bat activate myenv
即注意,批处理文件中的 conda activate 语法略有不同。还需要先运行
conda init cmd.exe
设置windows命令终端以使用conda。
此外,如果设置为在远程机器上运行,请注意调度程序有一个命令行界面,因此您甚至不需要与远程机器的 RDP 会话,但可以单独在 ssh 会话中进行设置:
schtasks /create /SC ONCE /TN <taskname> /TR C:\full\pathto\scheduledtask.bat /ST <hh:mm>