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 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:
与其使用sudo
with 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:
您正在尝试在系统范围路径上安装软件包,但是没有这样做的权限。
~~一般来说,您可以使用
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路径中。
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 项目管理必备:盘点2024年13款好用的项目管理软件