我有一个简单的python脚本在Linux上工作正常,我将它移动到Windows机器上,当我尝试运行它时,我收到以下异常消息:
Traceback (most recent call last):
File "C:\path\to\my\script.py", line 57, in <module>
retcode = subprocess.call(command)
File "C:\Python27\lib\subprocess.py", line 493, in call
return Popen(*popenargs, **kwargs).wait()
File "C:\Python27\lib\subprocess.py", line 679, in __init__
errread, errwrite)
File "C:\Python27\lib\subprocess.py", line 893, in _execute_child
startupinfo)
WindowsError: [Error 5] Access is denied
以下是抛出异常的代码片段:
print 'command is:',command
retcode = subprocess.call(command)
控制台输出如下:
命令是:['c:\ python27','C:\ path \ to \ script.py',' - mode = 2',' - check-temp = false',' - all- seasons = true',' - add = 1',' - max-temp = 2000',' - source = 2',' - loc = XYZ'] 调试时未处理的异常...
任何人都知道如何解决这个问题?
我在Windows XP Professional上运行python v2.7.3
答案 0 :(得分:5)
根据the documentation,参数序列中的第一项(在本例中是命令的第一个元素)被解释为要执行的程序。
查看命令的第一个元素,看起来您正在尝试执行目录。 Windows(有点非直观地)每当您尝试从目录读取时都会返回拒绝访问错误,就好像它是一个文件一样,如果您尝试执行一个文件,则会发生同样的事情。
而不是c:\python27
你可能想要c:\python27\bin\python.exe
或类似的东西。无论如何,您需要指向可执行文件,而不是指向目录。我不确定为什么这在Linux上适合你。
答案 1 :(得分:1)
您的程序无法访问该文件...检查您尝试访问的文件的权限,然后从那里开始...(即,提升Python解释器的权限,或者减少访问所需的权限说资源) - 无论哪种方式 - 谨慎行事。