如何在没有 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 视图设置动画?

如何在没有 MediaExtractor 的情况下为 H264 使用 MediaCodec

如何在没有 SDK 的情况下为 webjobs 设置警报

如何在没有 azure 的情况下为 UWP 注册推送通知?

如何在没有连接的情况下为 postgres (Redshift) 生成 SQL 查询?