Python脚本在Linux上工作正常,在Windows上导致WindowsError:[错误5]访问被拒绝

joh*_*ith 3 python windows windows-xp

我有一个简单的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
Run Code Online (Sandbox Code Playgroud)

以下是抛出异常的代码片段:

print 'command is:',command
retcode = subprocess.call(command)
Run Code Online (Sandbox Code Playgroud)

控制台输出如下:

命令是:['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

Har*_*ton 5

根据文档,参数序列中的第一项(在本例中是命令的第一个元素)被解释为要执行的程序.

查看命令的第一个元素,看起来您正在尝试执行目录.Windows(有点非直观地)每当您尝试从目录读取时都会返回拒绝访问错误,就像它是一个文件一样,如果您尝试执行一个文件,则会发生同样的事情.

而不是c:\python27你可能想要c:\python27\bin\python.exe或类似的东西.无论如何,您需要指向可执行文件,而不是指向目录.我不确定为什么这在Linux上适合你.