python setup.py install 无需使用sudo

8

我有一个带��一些结构的项目,它是控制台脚本。该项目有一个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)? - Laurent LAPORTE
我已经理解了问题的根源,并将其添加到下面的答案部分。virtualenv的问题在于,当我尝试安装我的程序时,它表现得像使用绝对路径一样,这让我感到困惑。但现在一切都正常工作了。 - N7D
2个回答

15

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

python setup.py install --user

5
我已经尝试过了。它仍然出现相同的错误: 错误:[Errno 13] Permission denied: 'srm.egg-info/PKG-INFO' - N7D
这对我很有用。我无法使用Python(python setup.py install)从源代码安装xgboost,因为Python脚本没有权限创建文件夹。如果我尝试使用sudo安装,Python会返回“ImportError:找不到名为setuptools的模块”,即使我已经安装了setuptools。指定--user标志并在不使用sudo的情况下运行install解决了问题。 - Lfppfs

7

好的,我犯了很多错误:

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

我的解决方案是使用sudo rm -r删除程序目录中以前创建的所有锁定文件和靠近python目录的文件,并仅使用--user或virtualenv在不使用sudo的情况下安装我的程序。


1
做起来非常容易,我也做了同样的事情。你刚刚为我节省了很多时间 - 谢谢! - Richard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接