尝试执行使用多处理包的python程序时出错:
File "/usr/local/lib/python2.6/multiprocessing/__init__.py", line 178, in RLock
return RLock()
File "/usr/local/lib/python2.6/multiprocessing/synchronize.py", line 142, in __init__
SemLock.__init__(self, RECURSIVE_MUTEX, 1, 1)
File "/usr/local/lib/python2.6/multiprocessing/synchronize.py", line 49, in __init__
sl = self._semlock = _multiprocessing.SemLock(kind, value, maxvalue)
OSError: [Errno 13] Permission denied
用户似乎没有访问共享内存的权限。当以根权限执行时,它可以正常工作。
是否有任何解决方案可以将其作为普通用户(而不是根用户)运行?
Python版本2.6.2,操作系统是Linux 2.6.18(CentOS版本5.4),它是VPS机器。
为了让POSIX信号量工作,用户需要r/w访问共享内存(
/dev/shm
)。检查对
/dev/shm
的权限。在我的笔记本电脑(Ubuntu)上看起来是这样的:要永久设置正确的权限(即使在重新启动后),请将以下内容添加到您的
/etc/fstab
:没有试过,只是从forum post复制过来的。
在我的OVH VPS Classic中,这个错误是由/dev/shm和/run/shm中的循环引起的。 两者都是相互链接的符号链接。 所以我做了如下的事情:
然后我修改了shm行:
致:
重新启动服务器。。。这就解决了问题! 或者,您可以手动安装shm:
希望这有帮助:-)
一个不需要重新启动的简单解决方案是
这解决了我的问题。
相关问题 更多 >
编程相关推荐