Run*_*oop 113 python permissions install pip
我正在尝试设置Django.
当我运行时pip install -r requirements.txt,我得到以下异常:
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'
Run Code Online (Sandbox Code Playgroud)
怎么了,怎么解决这个问题?
ber*_*ert 299
我们真的应该停止建议使用sudo带pip install.最好先尝试一下pip install --user.如果失败,请查看此处的顶部帖子.
你不应该使用的原因sudo如下:
当您运行pip时sudo,您将以root用户身份从Internet运行任意Python代码,这是一个非常大的安全风险.如果有人在PyPI上设置恶意项目并进行安装,则会授予攻击者root权限.
hec*_*nto 65
选项a)创建virtualenv,激活它并安装:
virtualenv .venv
source .venv/bin/activate
pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
选项b)在homedir中安装:
pip install --user -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
我的建议使用安全(a)选项,因此该项目的要求不会干扰其他项目要求.
Tob*_*san 27
您正在尝试在系统范围的路径上安装程序包,而无需执行此操作.
通常,您可以使用sudo临时获取超级用户
权限,以便在系统范围的路径上安装程序包:
sudo pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
sudo 在此处了解更多信息.
如果您不想进行系统范围的更改,可以使用该标志在每个用户的路径上安装该程序包--user.
所需要的只是:
pip install --user runloop requirements.txt
Run Code Online (Sandbox Code Playgroud)最后,为了实现更精细的控制,您还可以使用virtualenv,这可能是开发环境的优秀解决方案,特别是如果您正在处理多个项目并希望跟踪每个项目的依赖关系.
激活你的virtualenv后
$ my-virtualenv/bin/activate
以下命令将在virtualenv中安装软件包(而不是在系统范围的路径上):
pip install -r requirements.txt
Tho*_*ves 25
只是澄清了在linux(基于ubuntu)的许多痛苦之后对我有用的权限被拒绝错误,并且从Bert的答案中获得利用,我现在使用......
$ pip install --user <package-name>
Run Code Online (Sandbox Code Playgroud)
或者如果在需求文件上运行pip ...
$ pip install --user -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
这些工作可靠地用于每个pip安装,包括创建虚拟环境.
然而,干净的解决方案在我进一步的经验已经安装python-virtualenv,并virtualenvwrapper与sudo apt-get install在系统级.
然后,在虚拟环境中,使用pip install没有--user标志AND而不使用sudo.整体更清洁,更安全,更容易.
用户没有某些Python安装路径的写入权限.您可以通过以下方式给予许可:
sudo chown -R $USER /absolute/path/to/directory
Run Code Online (Sandbox Code Playgroud)
所以你应该给予许可,然后尝试再次安装,如果你有新的路径你也应该给予许可:
sudo chown -R $USER /usr/local/lib/python2.7/
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
177410 次 |
| 最近记录: |