当我尝试从脚本或 python -c 'import joblib'
导入 joblib 时,出现以下权限错误:
/usr/local/lib/python2.7/dist-packages/joblib//joblib_multiprocessing_helpers.py:29: UserWarning: [Errno 13] Permission denied. joblib will operate in serial mode
warnings.warn('%s. joblib will operate in serial mode' % (e,))
- joblib 已安装并通过 pip 强制重新安装
- 以 super 用户身份导入
- 我对 joblib 文件夹设置了完全权限
chmod -R 777/usr/local/lib/python2.7/dist-packages/joblib
;无济于事:权限错误仍然存在
因此,即使每个用户和组都对 joblib 目录具有完整的 rwx 权限,它也会给我一个权限错误。如何确定导入时对哪个目录 joblib 进行写权限检查?为什么它甚至在我指定写入操作之前进行检查?
最佳答案
通过查看 joblib 源代码找到它:
问题是我的系统上未启用信号量:Joblib 检查 multiprocessing.Semaphore(),结果发现只有 root 对/dev/shm 中的共享内存具有读/写权限。按照this answer修复它通过将以下内容添加到/etc/fstab 来永久设置正确的权限(即使在重新启动后):
none/dev/shm tmpfs rw,nosuid,nodev,noexec 0 0
然后重新挂载 mount/dev/shm -o remount
关于python - scikit-learn joblib : Permission error importing, 在串行模式下运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39146371/