pip安装-rrequirements.txt
失败,下面的异常OSError:[Errno 13]权限被拒绝:'/usr/本地/lib/...
。怎么了,我该怎么解决?(我试图设置Django)
Installing collected packages: amqp, anyjson, arrow, beautifulsoup4, billiard, boto, braintree, celery, cffi, cryptography, Django, django-bower, django-braces, django-celery, django-crispy-forms, django-debug-toolbar, django-disqus, django-embed-video, django-filter, django-merchant, django-pagination, django-payments, django-storages, django-vote, django-wysiwyg-redactor, easy-thumbnails, enum34, gnureadline, idna, ipaddress, ipython, kombu, mock, names, ndg-httpsclient, Pillow, pyasn1, pycparser, pycrypto, PyJWT, pyOpenSSL, python-dateutil, pytz, requests, six, sqlparse, stripe, suds-jurko
Cleaning up...
Exception:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main
status = self.run(options, args)
File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 283, in run
requirement_set.install(install_options, global_options, root=options.root_path)
File "/usr/lib/python2.7/dist-packages/pip/req.py", line 1436, in install
requirement.install(install_options, global_options, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/pip/req.py", line 672, in install
self.move_wheel_files(self.source_dir, root=root)
File "/usr/lib/python2.7/dist-packages/pip/req.py", line 902, in move_wheel_files
pycompile=self.pycompile,
File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 206, in move_wheel_files
clobber(source, lib_dir, True)
File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 193, in clobber
os.makedirs(destsubdir)
File "/usr/lib/python2.7/os.py", line 157, in makedirs
mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/amqp-1.4.6.dist-info'
与其在pip安装中使用
sudo
,不如先尝试pip安装--user
。如果失败了,那么看看这里的顶部帖子。
您不应该使用sudo
的原因如下:
当您使用sudo
运行pip时,您正在以root用户的身份从Internet上运行任意Python代码,这是一个相当大的安全风险。如果有人在PyPI上放置了一个恶意项目,并且你安装了它,你就给了攻击者对你的机器的根访问权限。
virtualenv .venv
source .venv/bin/activate
pip install -r requirements.txt
pip install --user -r requirements.txt
我的建议是使用safe(a)选项,这样该项目的需求就不会干扰其他项目的需求。
您试图在没有权限的情况下在系统范围的路径上安装程序包。
>
通常,您可以使用sudo
临时获得超级用户权限,并自行负责,以便在系统范围内的路径上安装软件包:
sudo pip install -r requirements.txt
在此处查找有关sudo的更多信息
实际上,这是一个坏主意,没有好的使用案例,请参见@wim的评论。
如果不想进行系统范围内的更改,可以使用--user
标志在每个用户路径上安装该包。
只需要:
pip install --user runloop requirements.txt
最后,对于更细粒度的控制,您还可以使用virtualenv,这可能是开发环境的最佳解决方案,特别是当您正在处理多个项目并且希望跟踪每个项目的依赖关系时。
使用激活您的virtualenv后
$my virtualenv/bin/activate
以下命令将在virtualenv内安装软件包(而不是在系统范围的路径上):
pip安装-r要求。txt