【问题标题】:Python script works fine on Linux, on Windows, causes WindowsError: [Error 5] Access is deniedPython 脚本在 Linux 上运行良好,在 Windows 上,导致 WindowsError: [Error 5] Access is denied
【发布时间】:2012-08-03 20:56:00
【问题描述】:

我有一个在 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

这是引发异常的代码的sn-p:

print 'command is:',command
retcode = subprocess.call(command)

控制台输出如下:

命令是:['c:\python27', 'C:\path\to\script.py', '--mode=2', '--check-temp=false', '--all-季节=true','--add=1','--max-temp=2000','--source=2','--loc=XYZ'] 调试时出现未处理的异常...

有人知道如何解决这个问题吗?

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

【问题讨论】:

    标签: python windows windows-xp


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • (即,要么提升 Python 解释器的权限,要么减少对所述资源所需的访问权限) - 我如何在 Windows 中执行此操作? IIRC Windows 具有不同的文件权限系统 - 例如没有chmodchown 等?
      猜你喜欢
      • 1970-01-01
      • 2021-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-01
      • 1970-01-01
      相关资源
      最近更新 更多