twisted.internet.reactor.spawnProcess引发OSError(13,'权限被拒绝')。

3

当我尝试通过'twisted.internet.reactor.spawnProcess'运行Python脚本时:

from twisted.internet import protocol, reactor

class ProcessProtocol(protocol.ProcessProtocol):
    def connectionMade(self):
        self.transport.closeStdin()

    def childDataReceived(self, childFD, data):
        print data

def main():
    proto = ProcessProtocol()
    cmd = ['/var/projects/python/worker.py']
    reactor.spawnProcess(proto, cmd[0], cmd)

if __name__ == "__main__":
    exit(main())

I get the following error:

Upon execvpe /var/projects/python/worker.py ['/var/projects/python/worker.py', '5'] in environment id 29011152
:Traceback (most recent call last):
  File "/usr/local/lib/python2.6/dist-packages/Twisted-11.0.0-py2.6-linux-x86_64.egg/twisted/internet/process.py", line 414, in _fork
    executable, args, environment)
  File "/usr/local/lib/python2.6/dist-packages/Twisted-11.0.0-py2.6-linux-x86_64.egg/twisted/internet/process.py", line 460, in _execChild
    os.execvpe(executable, args, environment)
  File "/usr/lib/python2.6/os.py", line 353, in execvpe
    _execvpe(file, args, env)
  File "/usr/lib/python2.6/os.py", line 368, in _execvpe
    func(file, *argrest)
OSError: [Errno 13] Permission denied

你确定你有执行 '/var/projects/python/worker.py' 的权限吗? - Santa
你是否以root用户身份运行脚本?如果不是,那么/var/projects/python/worker.py文件是否具有被运行脚本的用户读取的正确权限? - mdeous
1个回答

4

您可能没有执行'/var/projects/python/worker.py'的权限,或者该脚本的执行位未设置。请运行ls -l /var/projects/python/worker.py以检查它。


1
这就是问题所在。我没有执行权限。 - Uyghur Lives Matter
请随时报告文档错误。http://twistedmatrix.com/documents/current/api/twisted.internet.interfaces.IReactorProcess.spawnProcess.html 应该详细说明EACCES(即errno 13)的相关内容。 - Glyph

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接