pip 安装失败:OSError:[Errno 13] 目录权限被拒绝

2024-11-28 08:37:00
admin
原创
209
摘要:问题描述:pip install -r requirements.txt失败并出现以下异常OSError: [Errno 13] Permission denied: '/usr/local/lib/...。出了什么问题?我该如何修复?(我正在尝试设置Django)Installing collected p...

问题描述:

pip install -r requirements.txt失败并出现以下异常OSError: [Errno 13] Permission denied: '/usr/local/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'

解决方案 1:

与其使用sudowith pip install,不如先尝试一下pip install --user。如果失败了,请查看此处的顶部帖子。

不应使用的原因sudo如下:

当您使用 运行 pip 时sudo,您将以 root 用户身份从 Internet 运行任意 Python 代码,这是一个相当大的安全风险。如果有人在 PyPI 上放置恶意项目,并且您安装了它,则攻击者会获得对您计算机的 root 访问权限。

解决方案 2:

选项 a) 创建一个虚拟环境,激活并安装:

virtualenv .venv
source .venv/bin/activate
pip install -r requirements.txt

选项 b) 安装在你的主目录中:

pip install --user -r requirements.txt

我的建议使用安全(a)选项,以便该项目的要求不会干扰其他项目的要求。

解决方案 3:

您正在尝试在系统范围路径上安装软件包,但是没有这样做的权限。

  1. ~~一般来说,您可以使用sudo临时获取超级用户
    权限在系统范围的路径上安装该软件包:~~

 sudo pip install -r requirements.txt

```~~~~`sudo` 在此处了解更多信息。~~


实际上,这是一个坏主意并且没有好的用例,请参阅@wim 的评论。
2. 如果您不想进行系统范围的更改,您可以使用标志在**每个用户**`--user`路径上安装该包。


只需:


pip install --user runloop requirements.txt

3. 最后,为了实现**更细粒度的控制**,您还可以使用虚拟环境,这可能是开发环境的最佳解决方案,特别是当您正在处理**多个项目**并想要跟踪每个项目的依赖关系时。


使用以下命令激活虚拟环境后


`$ my-virtualenv/bin/activate`


以下命令将在虚拟环境中安装该包(而*不是*在系统范围路径中):


`pip install -r requirements.txt`




## 解决方案 4:

 
只是澄清一下在 Linux(基于 ubuntu)上因权限被拒绝错误而遭受很多痛苦之后什么对我有用,并利用上面的 Bert 的回答,我现在使用......


$ pip install --user <package-name>


或者如果在需求文件上运行 pip......


$ pip install --user -r requirements.txt


这些对于每个 pip 安装(包括创建虚拟环境)都可以可靠地工作。


*然而,根据我进一步的经验,*最干净的解决方案是在系统级别安装`python-virtualenv`和`virtualenvwrapper`使用。`sudo apt-get install`


然后,在虚拟环境中,使用`pip install`不带`--user`标志*和*不带的`sudo`。总体来说更干净、更安全、更容易。




## 解决方案 5:

 
用户对某些 Python 安装路径没有写权限。您可以通过以下方式授予权限:


sudo chown -R $USER /absolute/path/to/directory


因此,您应该给予权限,然后尝试再次安装它,如果您有新的路径,您也应该给予权限:


sudo chown -R $USER /usr/local/lib/python2.7/




## 解决方案 6:

 
如果需要权限,则不能将“pip”与“sudo”一起使用。您可以耍个小花招,这样就可以使用“sudo”并安装包。只需在 pip 命令前面放置“sudo python -m ...”即可。


sudo python -m pip install --user -r package_name




## 解决方案 7:

 
以下命令对我有用


pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org PACKAGE_NAME --user


或者


pip install --user <package name>


例子:


pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org matplotlib --user




## 解决方案 8:

 
因此,我因为完全不同的原因而得到了完全相同的错误。由于完全独立但已知的Homebrew + pip 错误,我遵循了Google Cloud 帮助文档中列出的解决方法,即在主目录中创建一个 .pydistutils.cfg 文件。此文件具有特殊配置,您只能将其用于安装某些库。我应该在安装软件包后删除该 disutils.cfg 文件,但我忘了这样做。所以对我来说,解决方法实际上只是...


`rm ~/.pydistutils.cfg`。


然后一切都正常了。当然,如果你出于某种原因在该文件中有一些配置,那么你不会想直接删除该文件。但万一其他人也做了这种解决方法,却忘记删除该文件,这个方法对我来说很管用!




## 解决方案 9:

 
这是由于权限问题,


sudo chown -R $USER /path to your python installed directory


默认的是`/usr/local/lib/python2.7/`
===============================


或者尝试


pip install --user -r package_name


然后说,`pip install -r requirements.txt`这将安装在你的环境中


别说,`sudo pip install -r requirements.txt`这是会安装到任意python路径中。


相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1247  
  IPD(Integrated Product Development)研发管理体系作为一种先进的产品开发管理模式,在众多企业中得到了广泛应用,助力企业提升产品开发效率、降低成本、增强市场竞争力。深入理解其核心要素,对于企业成功实施 IPD 研发管理体系至关重要。以下将对 IPD 研发管理体系的四大核心要素进行详细解析。...
IPD流程中的charter   19  
  IPD(Integrated Product Development)研发管理体系强调将产品开发视为一个完整的流程,从市场需求出发,整合企业的各种资源,实现产品的快速、高质量交付。在这个过程中,成本控制是至关重要的一环,它直接关系到产品的竞争力和企业的盈利能力。有效的成本控制能够确保在不牺牲产品质量和性能的前提下,降低...
IPD开发流程管理   22  
  IPD(Integrated Product Development)项目管理作为一种先进的产品开发管理模式,在众多企业中得到了广泛应用。它通过整合跨部门团队,实现从概念到产品上市的全流程高效管理,提升产品竞争力。深入探讨IPD项目管理的六个关键阶段,对于企业理解和运用这一模式,优化产品开发流程具有重要意义。概念阶段概...
IPD概念阶段   29  
  IPD(Integrated Product Development)流程管理作为一种先进的产品开发管理模式,旨在通过整合各种资源,实现产品开发的高效、协同与创新。在这一流程管理体系下,产品质量保障成为企业关注的核心要点之一。有效的产品质量保障策略不仅能够提升产品的市场竞争力,还能为企业赢得良好的声誉和客户忠诚度。接下...
华为IPD   24  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用