我尝试通过pip3安装软件包,我收到了这个错误。我运行的每个pip / pip3命令都会给我这个错误 -
alexg@hitbox:~$ pip3 -V
Traceback (most recent call last):
File "/usr/local/bin/pip3", line 7, in <module>
from pip import main
File "/home/alexg/.local/lib/python3.5/site-packages/pip/__init__.py", line 26, in <module>
from pip.utils import get_installed_distributions, get_prog
File "/home/alexg/.local/lib/python3.5/site-packages/pip/utils/__init__.py", line 27, in <module>
from pip._vendor import pkg_resources
File "/home/alexg/.local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 3018, in <module>
@_call_aside
File "/home/alexg/.local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 3004, in _call_aside
f(*args, **kwargs)
File "/home/alexg/.local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 3046, in _initialize_master_working_set
dist.activate(replace=False)
File "/home/alexg/.local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2578, in activate
declare_namespace(pkg)
File "/home/alexg/.local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2152, in declare_namespace
_handle_ns(packageName, path_item)
File "/home/alexg/.local/lib/python3.5/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2092, in _handle_ns
_rebuild_mod_path(path, packageName, module)
File "/home/alexg/.local/lib/python3.5/site-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'
我已经尝试根据一些答案运行pip3 install --upgrade pip setuptools
,但每个pip命令都会给我错误。我被困住了,什么也做不了。
可能导致它的原因,以及如何解决这个问题?
我使用Python 16.04
3.5.2
上
答案 0 :(得分:47)
我遇到了与python 3.5.2和pip3(9.0.1)相同的问题。我通过以下解决方法修复了它:https://getbootstrap.com/docs/4.0/content/typography/
更具体地说,我编辑了这个文件的第2121~212行:“sudo vim /usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources / __ init __。py”
#orig_path.sort(key=position_in_sys_path)
#module.__path__[:] = [_normalize_cached(p) for p in orig_path]
orig_path_t = list(orig_path)
orig_path_t.sort(key=position_in_sys_path)
module.__path__[:] = [_normalize_cached(p) for p in orig_path_t]
答案 1 :(得分:29)
升级setuptools对我有用:
pip3 install --upgrade setuptools
答案 2 :(得分:10)
这可能听起来很奇怪,因为我遇到了这个问题而且我已经尝试了SO和GitHub问题中提到的所有内容。但后来我用easyinstall和pip命令安装了pip。也许现在有2个点包。但错误消失了。
easy_install pip
答案 3 :(得分:4)
我正在使用virtualenv
,并且升级setuptools对我而言不起作用。起作用的是this workaround:
pip uninstall setuptools -y && pip install setuptools
答案 4 :(得分:3)
这可能意味着您的依赖关系搞砸了。
尝试从头开始卸载pip3,它应该可以正常工作。
如果它不起作用,请删除pip
安装。在你的情况下:
rm -r /home/alexg/.local/lib/python3.5/site-packages/pip/
下次确定,最好与virtual environments合作:)
答案 5 :(得分:2)
还有另一个答案,但以下是最终为我解决此问题的答案。由于pip
被盗用,因此我无法使用它来升级自身或setuptools
,并且使用easy_install
也引起了同样的问题。因此,我尝试使用pip
安装Python
。
答案:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
pip install --upgrade setuptools
答案 6 :(得分:1)
尝试-
pip install -U pip
pip install -U setuptools
如果编辑__init__.py
没有帮助。
答案 7 :(得分:1)
我尝试了以上建议的大多数解决方案,但由于pip3完全无法正常工作,所以没有任何效果,然后我发现了这一点: https://deeptalk.lambdalabs.com/t/trying-to-uninstall-tensorflow-or-matplotlib-pip-package-throws-attributeerror--namespacepath-object-has-no-attribute-sort/310
我认为这可能是我们大多数人的问题。我尝试了建议的解决方案,pip3再次正常工作。
对我来说,matplotlib不存在于dist软件包中,而是存在于站点软件包中,因此对我有用的命令是:
sudo rm ~/.local/lib/python3.5/site-packages/matplotlib-3.0.3-py3.5-nspkg.pth
当然,您需要根据您的matplotlib的版本和位置更改上述路径。
答案 8 :(得分:0)
尝试:
sudo easy_install setuptools
然后
DataFrame.info()
由于混乱的依赖性,它可能会发生。
答案 9 :(得分:0)
我在使用诗歌时遇到了同样的问题。
运行
poetry run pip install --upgrade pip setuptools
代替
pip install --upgrade pip setuptools
解决了该问题。
答案 10 :(得分:0)
我遇到了同样的问题,无法使用pip3运行任何命令(包括诸如pip3 install --upgrade pip setuptools
之类的命令)。
我发现的唯一解决方法是完全卸载并重新安装python 3(sudo apt-get remove python3
,sudo apt-get install python3
,sudo apt install python3-pip
),现在pip3再次正常工作。
答案 11 :(得分:0)
尝试各种方法(例如重新安装pip,setuptools)后,仍然无法解决问题。 我遵循https://github.com/pypa/pip/issues/4216#issuecomment-286348680的说明,并且仅带有外部警告。 之后,我使用pip卸载matplotlib。 最后,一切似乎都还好。
答案 12 :(得分:0)
我一直遇到这个问题(并使用下面的解决方法在python3解释器中使用pip)。令我惊讶的是,在卸载了所有版本的numpy并重新安装了最新版本的numpy之后,pip再次开始工作。我无法确定发生了什么,但是如果其他所有操作都失败了,则可能要尝试一下。
解决方法(由我不记得的几个来源拼凑而成)是
这是笔录:
>>> import pip
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/pip/_vendor/__init__.py",
__import__(vendored_name, globals(), locals(), level=0)
ImportError: No module named 'pip._vendor.pkg_resources'
During handling of the above exception, another exception occurred
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3/dist-packages/pip/__init__.py", line 13,
from pip.exceptions import InstallationError, CommandError, Pi
File "/usr/lib/python3/dist-packages/pip/exceptions.py", line 6,
from pip._vendor.six import iteritems
File "/usr/lib/python3/dist-packages/pip/_vendor/__init__.py", l
vendored("pkg_resources")
File "/usr/lib/python3/dist-packages/pip/_vendor/__init__.py", l
__import__(modulename, globals(), locals(), level=0)
.
etc
.
AttributeError: '_NamespacePath' object has no attribute 'sort'
>>> import pip
>>> pkgs = ['asciiplotlib']
>>> pip.main(['install'] + pkgs + ['--upgrade'])
Collecting asciiplotlib
Using cached https://files.pythonhosted.org/packages/15/c5/46a2d
Installing collected packages: asciiplotlib
Successfully installed asciiplotlib-0.1.8
答案 13 :(得分:0)
我通过以下方法解决了这个问题:
$curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
对于python2:
$python get-pip.py
对于python3:
$python3 get-pip.py
现在它对我有用。
答案 14 :(得分:0)
其他发布的答案都没有为我工作,但运行以下命令解决了问题:
sudo apt-get purge --auto-remove python3-pkg-resources python3-setuptools
答案 15 :(得分:0)
这是针对安装了WinPython的Windows用户的 我们甚至无法运行pip命令。卸载并安装Anaconda 3 我们遇到了类似的错误。最后,我们删除了C:\ Users \ you \ AppData \ Roaming \内的文件夹“ Python”,并删除了C:\ Users \ you \ AppData \ Roaming \ conda内的文件夹“ conda”和“ packages”。 然后它起作用了。