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

2024-11-28 08:37:00
admin
原创
9
摘要:问题描述: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路径中。


相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   649  
  如何借鉴华为IPD体系优化企业研发?在当今竞争激烈的市场环境中,企业要想保持技术领先和产品竞争力,必须拥有一套高效且严谨的研发管理体系。华为作为全球领先的ICT解决方案提供商,其集成产品开发(IPD, Integrated Product Development)体系与质量管理体系(如ISO 9000系列)的融合实践,...
IPD项目管理   0  
  IPD流程图的7种经典绘制方法详解在产品开发领域,集成产品开发(Integrated Product Development,简称IPD)流程被广泛应用,以提高产品开发的效率和质量。IPD流程图作为这一流程的可视化工具,其绘制方法至关重要。本文将详细介绍七种经典的IPD流程图绘制方法,帮助项目管理人员和团队更好地理解和...
IPD研发管理体系   0  
  IPD流程:企业创新管理的核心引擎在当今快速变化的市场环境中,企业要想持续保持竞争力,就必须不断进行创新。而IPD(Integrated Product Development,集成产品开发)流程作为一种先进的产品开发管理模式,正逐渐成为众多企业提升创新能力、加速产品上市速度、降低开发成本的重要选择。本文将深入探讨IP...
IPD管理   0  
  IPD流程与传统产品开发流程的概述在产品开发领域,企业不断寻求高效、系统的管理方法以确保产品能够顺利从概念转化为市场成功的产品。集成产品开发(Integrated Product Development,简称IPD)流程与传统产品开发流程是两种截然不同的管理理念和方法。传统产品开发流程往往以职能部门为核心,各部门按顺序...
IPD流程中PDCP是什么意思   0  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

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

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

内置subversion和git源码管理

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

免费试用