【发布时间】:2015-08-31 21:41:08
【问题描述】:
在使用 npm 一段时间后,我很难理解为什么 pip3(即:使用 Python 3 的 pip)在管理权限方面如此顽固。
到目前为止,我一直在使用 pip3 和 sudo,因为我是唯一使用这台计算机的人,我不介意全局安装软件包
今天我想安装pep8 包并在本地使用它而不需要sudo。 IDE 可以使用 pep8,如果没有 sudo,他们将无法使用它。因此,我想运行
pip3 install --user pep8
但是,如果没有 sudo,命令将无法工作。控制台抛出带有 PermissionError 的回溯:
PermissionError: [Errno 13] Permission denied: '/usr/lib/python3.4/site-packages/pip/__init__.py'
如果使用 sudo 运行,从逻辑上讲,pep8 安装在 /root 中
在 2.7 中,解决方法是卸载 pip,然后使用 --user 在本地重新安装。不过,目前我无法卸载 pip3。至少在 Fedora 22 中,依赖关系似乎非常紧密。我的猜测是 pip3 与 3.4 捆绑在一起,这让事情变得更糟。
所以,运行
python3 get-pip.py --user
给出一个权限错误,因为该脚本查看当前的 pip3 安装。如果我使用 sudo 运行命令,--user 可以工作(我相信它仍处于测试模式?)但从逻辑上讲,它将它安装在 /root 文件夹中
简而言之,有没有办法使用pip配合Python3在本地安装包?
【问题讨论】:
-
However, command doesn't work without sudo.- 你可能想在这里更具体。 -
pip3 install --user pep8适合我。 pip 想为你安装--user安装在哪里? -
刚刚更新了我的问题,如果我在没有 sudo 的情况下运行 pip3 会出现 PermissionError
-
"如果使用 sudo 运行,从逻辑上讲,pep8 安装在 /root 中"。它不应该:它应该在使用 sudo 运行时将其安装在
/usr/lib/python3.4/site-packages中;不在/root。 -
“真正的”权限被拒绝似乎是 command
pip3无法读取/usr/lib/python3.4/site-packages/pip/__init__.py的事实。失败的不是安装部分,而是执行部分。不知何故,您设法以普通用户无法读取该目录的方式安装了pip。检查您对站点包目录和子目录的权限,并相应地更改它们。相关问题:您第一次是如何安装pip3的?
标签: python-3.x pip python-3.4