没有 sudo 的 python setup.py 安装

Posted

技术标签:

【中文标题】没有 sudo 的 python setup.py 安装【英文标题】:python setup.py install without sudo 【发布时间】:2017-09-30 12:24:41 【问题描述】:

我有一个具有某种结构的项目,它是控制台脚本。该项目有 setup.py 文件。

我只想在不使用 sudo 的情况下以任何方式安装我的包。 我花了大约 10 个小时浏览互联网,但找不到有效的解决方案。

我不断收到错误:[Errno 13] Permission denied: 'srm.egg-info/PKG-INFO' if using virtualenv

并获得 [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/test-easy-install-27105.write-test'

使用 sudo 效果很好(但是卸载有问题,并且仍然无法使用 virtualenv)

使用:Ubuntu 14.04、Python 2.7,

【问题讨论】:

virtualenv 有什么问题?你可以解释吗?你如何使用它?激活了吗?哪个版本的 pip(和 setuptools)? 我已经了解了问题的根源,在下面的答案部分添加了它。 virtualenv 的问题在于,当我尝试安装我的程序时,它的行为就像使用绝对路径一样,这让我感到困惑。但现在一切正常。 【参考方案1】:

好吧,所以我搞砸了这么多:

使用 sudo 后,在我的 setup.py 位置创建了包文件,并且它们有锁图标(系统文件因为 sudo),没有 sudo 我无法再安装程序。

我的解决方案是 sudo rm -r 之前在程序目录和 python 目录附近创建的所有锁定文件,然后使用 --user 或 virtualenv 安装我的程序而不使用 sudo。

【讨论】:

如此简单,我做了完全相同的事情。您刚刚为我节省了大量时间 - 谢谢!【参考方案2】:

使用参数 --user 指定你的主目录:

python setup.py install --user

【讨论】:

我已经试过了。它给出了同样的错误:错误:[Errno 13] Permission denied: 'srm.egg-info/PKG-INFO' 这对我有用。我无法使用 python (python setup.py install) 从源代码安装 xgboost,因为 python 脚本没有创建文件夹的权限。如果我尝试使用 sudo 安装,python 会返回 ImportError: No module named setuptools,即使我已经安装了 setuptools。指定标志 --user 并在没有 sudo 的情况下运行 install 解决了这个问题。

以上是关于没有 sudo 的 python setup.py 安装的主要内容,如果未能解决你的问题,请参考以下文章

python setup.py install 出错

python setup.py bdist_wheel 报错的处理办法

setup.py:限制python解释器的允许版本

python中的模块通过setup.py怎么安装

在 setup.py 中使用额外的 python 包索引 url

在 pypi python setup.py 中指定可选依赖项