与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
来解决。