Pip在升级到ubuntu-16.10后无法正常工作
问题描述:
与pip一起运行命令会导致以下错误。即使命令pip -V
也会产生以下错误。
我读到该错误是由于setuptools版本31.0.0,它应该低于28.0.0。但是我的setuptools版本是26.1.1,它仍然给出相同的错误。Pip在升级到ubuntu-16.10后无法正常工作
Traceback (most recent call last): File "/usr/local/bin/pip", line 7, in from pip import main File "/usr/local/lib/python3.5/dist-packages/pip/__init__.py", line 26, in from pip.utils import get_installed_distributions, get_prog File "/usr/local/lib/python3.5/dist-packages/pip/utils/__init__.py", line 27, in from pip._vendor import pkg_resources File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 3018, in @_call_aside File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 3004, in _call_aside f(*args, **kwargs) File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 3046, in _initialize_master_working_set dist.activate(replace=False) File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 2578, in activate declare_namespace(pkg) File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 2152, in declare_namespace _handle_ns(packageName, path_item) File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 2092, in _handle_ns _rebuild_mod_path(path, packageName, module) File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 2121, in _rebuild_mod_path orig_path.sort(key=position_in_sys_path) AttributeError: '_NamespacePath' object has no attribute 'sort'
答
我能找到的唯一解决方案是重新安装pip
。终端
wget https://bootstrap.pypa.io/get-pip.py
sudo -H python get-pip.py --prefix=/usr/local/
然而上运行这些命令,这仅适用于pip
,不pip3
!
答
升级你的setuptools: wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo python3
通常合并执行sudo与PIP被认为是有害的,避免这种情况,当你的系统是不是已经破碎。
+0
尽管我将setuptools升级到33.1.1,但“pip”不起作用 –
从pid GitHub问题跟踪器中的[this comment](https://github.com/pypa/pip/issues/4216#issuecomment-273189975)可能会有比您在此处显示的回溯更多的回溯。你能否让我们知道这是所有的追溯,还是之前有更多?后者可能是相关的,因为GitHub注释中的一部分显示了发生在'/ usr/lib'中的回溯的一部分,而在那里,另一部分在'/ usr/local/lib'中。这不应该真的发生。 – Evert
这是在控制台上显示的唯一回溯。 –