【发布时间】:2019-06-08 07:06:49
【问题描述】:
我无法使用python setup.py --user 安装 pip,而且我认为我的 python 安装通常有点笨拙。
我希望能够在我的用户上使用不带 sudo 的 pip(在这种情况下为vagrant)。我读过的所有内容都表明上述内容应该有效,但它只是拒绝。
如果我使用sudo python setup.py --user,那么它会正确安装,但同样,由于安装到用户目录,因此不需要 sudo。
python setup.py --user
Traceback (most recent call last):
File "setup.py", line 6, in <module>
from setuptools import find_packages, setup
File "/home/vagrant/.local/lib/python3.6/site-packages/setuptools/__init__.py", line 16, in <module>
import setuptools.version
File "/home/vagrant/.local/lib/python3.6/site-packages/setuptools/version.py", line 1, in <module>
import pkg_resources
File "/home/vagrant/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 3126, in <module>
@_call_aside
File "/home/vagrant/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 3110, in _call_aside
f(*args, **kwargs)
File "/home/vagrant/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 3139, in _initialize_master_working_set
working_set = WorkingSet._build_master()
File "/home/vagrant/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 572, in _build_master
ws = cls()
File "/home/vagrant/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 565, in __init__
self.add_entry(entry)
File "/home/vagrant/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 621, in add_entry
for dist in find_distributions(entry, True):
File "/home/vagrant/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 1968, in find_on_path
for dist in factory(fullpath):
File "/home/vagrant/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2030, in distributions_from_metadata
if len(os.listdir(path)) == 0:
PermissionError: [Errno 13] Permission denied: '/usr/local/lib/python3.6/dist-packages/websocket_client-0.54.0.dist-info'
其他信息...
python -V
Python 3.6.7
which python
/usr/bin/python
另外,我知道我可以使用 venv 来实现我想要的,但关键是它应该可以工作,但不能,这 a) 让我无所适从,b) 表明某些事情很简单我的设置有问题。
【问题讨论】:
-
你知道你是否使用代理上网吗?
-
我愿意,但我不是。
-
您使用的是哪个操作系统?在 Debian 和 Ubuntu 中,您可以通过运行“sudo apt-get install python-pip”轻松安装 pip
-
@MEdwin - 我宁愿不使用 apt,因为它几乎总是过时的。
-
我从日志中的猜测:您在过去的某个时间安装了包
websocket_client和sudo pip。现在 pip 想要更新它(它在哪里,即使您请求--user),因此是dist-info后缀。暂定修复:手动sudo remove来自/usr/local/lib/python3.6/dist-packages/websocket_client-0.54.0.dist-info的包。冲洗并重复类似问题的包装。然后,给我们echo $PYTHONPATH的结果。然后尝试python get-pip.py --user的事情。
标签: python ubuntu installation pip