升级到ubuntu16.10后,Pip不起作用



与pip一起运行命令会出现以下错误。即使是命令pip -V也会产生以下错误
我读到错误是由于setuptools版本31.0.0造成的,它应该低于28.0.0。但是我的setuptools的版本是26.1.1,它仍然给出相同的错误。

Traceback(最近一次通话最后一次):文件"/usr/local/bin/pip",第7行,位于从pip导入main文件"/usr/local/lib/python3.5/dist packages/pip/__init__.py",第26行,位于从pip.utils导入get_installed_distributions,get_prog文件"/usr/local/lib/python3.5/dist packages/pip/utils/__init__.py",第27行,位于来自pip_供应商导入pkg_resources文件"/usr/local/lib/python3.5/dist packages/pip/_vendor/pkg_resources/__init__.py",第3018行,位于@_呼叫侧文件"/usr/local/lib/python3.5/dist packages/pip/_vendor/pkg_resources/__init__.py",第3004行,在_call_aside中f(*args,**kwargs)文件"/usr/local/lib/python3.5/dist packages/pip/vendor/pkg_resources/__init__.py",第3046行,在_initialize_master_working_set中dist.activate(replace=False)activate中的文件"/usr/local/lib/python3.5/dist packages/pip/vendor/pkg_resources/__init__.py",第2578行declare_namespace(pkg)文件"/usr/local/lib/python3.5/dist packages/pip/_vendor/pkg_resources/__init__.py",第2152行,位于declare_namespace中_handle_ns(packageName,path_item)文件"/usr/local/lib/python3.5/dist packages/pip/_vendor/pkg_resources/__init__.py",第2092行,在_handle_ns中_rebuild_mod_path(path,packageName,module)文件"/usr/local/lib/python3.5/dist packages/pip/vendor/pkg_resources/__init__.py",第2121行,在_rebuild_mod_path中orig_path.sort(key=position_in_sys_path)AttributeError:"_NamespacePath"对象没有属性"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结合被认为是有害的,当你的系统还没有崩溃时,请避免这种情况。

请参阅https://stackoverflow.com/a/48126778/7596504.这个问题可以通过修改/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/__init__.py来解决。

最新更新