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

时间:2012-08-06 21:02:38

标签: 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

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

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

2 个答案:

答案 0 :(得分:5)

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

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

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

答案 1 :(得分:1)

您的程序无法访问该文件...检查您尝试访问的文件的权限,然后从那里开始...(即,提升Python解释器的权限,或者减少访问所需的权限说资源) - 无论哪种方式 - 谨慎行事。