3

我有一个在 Linux 上运行良好的简单 python 脚本,我将它移到 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 ', '--added=1', '--max-temp=2000', '--source=2', '--loc=XYZ'] 调试时出现未处理的异常...

任何人都知道如何解决这个问题?

我在 Windows XP Professional 上运行 python v2.7.3

4

2 回答 2

5

根据文档,参数序列中的第一项(在这种情况下,命令的第一个元素)被解释为要执行的程序。

查看命令的第一个元素,您似乎正在尝试执行一个目录。每当您尝试从目录中读取文件时,Windows(有点不直观)都会返回拒绝访问错误,如果您尝试执行文件,也会发生同样的事情。

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

于 2012-08-06T21:38:27.090 回答
1

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

于 2012-08-06T21:10:02.053 回答