如何在没有 sudo 的情况下为 Python 安装包时避免权限被拒绝
Posted
技术标签:
【中文标题】如何在没有 sudo 的情况下为 Python 安装包时避免权限被拒绝【英文标题】:how to avoid Permission denied while installing package for Python without sudo 【发布时间】:2014-04-28 09:20:59 【问题描述】:我正在尝试以用户mike
的身份安装python 的tesseract
包装器,以便我可以import tesseract
。我在这里遵循指南https://code.google.com/p/python-tesseract/wiki/HowToCompilePythonTesseractForCentos
但是,当我执行python setup.py install
我收到以下错误:
[Errno 13] Permission denied: '/usr/local/lib/python2.7/site-packages/test-easy-install-7351.write-test'
The installation directory you specified (via --install-dir, --prefix, or
the distutils default setting) was:
/usr/local/lib/python2.7/site-packages/
我确实有 sudo 访问权限,但问题是:当我以 root
登录时,默认 python 版本是 2.6,但是,当我以 mike
登录时,默认 python 版本是 2.7
(这是我想要)。因此,如果我执行sudo python setup.py install
,那么tesseract
的安装将在2.6
而不是2.7
上进行。
在这种情况下我能做什么?我应该更改site-packages
文件夹的权限吗?我有点没办法了……
【问题讨论】:
这个解决方案可能有用***.com/a/39618607/2958795 【参考方案1】:试试python setup.py install --user
这会将软件包安装到 /home/your_user/.local/lib/pythonX.X/site-packages/ 而不是 /usr/local/lib/您没有权限的地方(除非您使用 sudo)。
【讨论】:
这让我克服了困难,但还没有完全做到。现在我收到此错误error: could not create 'build/bdist.linux-x86_64/egg': Permission denied
可能是因为您已经以 root 身份构建了包。你需要chown
为自己构建目录。或者删除它并重新编译。
@是否会在用户空间从源代码安装模块(setup.py 由模块作者提供)
对我有用 .. 它在 /home/user/.local/ 中安装了所有包 .. 太棒了!谢谢【参考方案2】:
也许您可以以普通用户的身份输入此行:
whereis python
假设结果是“/usr/bin/python”,那么:
sudo /usr/bin/python setup.py install
【讨论】:
python2.7
找不到 sudo
是否以普通用户身份找到“python2.7”?试试“whereis python”找到2.7版本怎么样以上是关于如何在没有 sudo 的情况下为 Python 安装包时避免权限被拒绝的主要内容,如果未能解决你的问题,请参考以下文章
如何在不放弃主线程的情况下为 Python 使用 CoreBluetooth
如何在没有 UINavigationController 的情况下为 detailViewController 视图设置动画?