web-dev-qa-db-ja.com

pip3エラー-「_NamespacePath」オブジェクトには「sort」属性がありません

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コマンドでエラーが発生します。私は立ち往生していて、何もできません。

何が原因である可能性があり、どのように修正できますか?

Ubuntu 16.04とPython 3.5.2を使用しています

40
amadispstac

python 3.5.2およびpip3(9.0.1)でも同じ問題に遭遇しました。そして、この回避策に従って修正しました: https://github.com/pypa/setuptools/issues/885#issuecomment-307696027

より具体的には、このファイルの#2121〜2122行を編集しました: "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]
49
jkjung13

Setuptoolsのアップグレードは私のために働いた:

pip3 install --upgrade setuptools
36
Thai

この問題があり、SOおよびGitHubの問題に記載されているすべてのことを試したため、これは奇妙に聞こえるかもしれません。しかし、その後、私はeasyinstallでpipをインストールし、pipコマンドは機能しています。たぶん今、2つのpipパッケージがあります。しかし、エラーはなくなりました。

easy_install pip

11
Foreever

virtualenvを使用していますが、setuptoolsのアップグレードが機能しませんでした。動作したのは この回避策

pip uninstall setuptools -y && pip install setuptools
5
mtlynch

さらに別の答えですが、以下は最終的に私のために問題を修正したものです。 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
5
Dataman

これはおそらく、依存関係が台無しになったことを意味します。

Pip3をゼロからアンインストールしてみてください。正常に機能するはずです。

動作しない場合は、pipインストールを削除してください。あなたの場合:

rm -r /home/alexg/.local/lib/python3.5/site-packages/pip/

そして、次回のために、 仮想環境 :)で作業するのが最善です

3
adrpino

上記の提案されたソリューションのほとんどを試しましたが、pip3が完全に機能していなかったので何も機能しませんでしたが、これを見つけました: https://deeptalk.lambdalabs.com/t/trying-to-uninstall-tensorflow-or- matplotlib-pip-package-throws-attributeerror--namespacepath-object-has-no-attribute-sort/31

これはおそらく私たちのほとんどの問題だと思います。提案された解決策を試してみましたが、pip3は再び機能します。

私にとって、matplotlibはdist-packagesに存在していませんでしたが、代わりにsite-packagesに存在していたので、私のために働いたコマンドは次のとおりでした:

Sudo rm ~/.local/lib/python3.5/site-packages/matplotlib-3.0.3-py3.5-nspkg.pth

もちろん、matplotlibのバージョンと場所に基づいて上記のパスを変更する必要があります。

3
fraz

試してみてください-
pip install -U pip
pip install -U setuptools

__init__.pyを編集しても解決しない場合。

2
markroxor

試してください:Sudo easy_install pipその後

Sudo easy_install setuptools

おそらく、混乱した依存関係が原因です。

0
Glnb

これを次のように修正しました。

$curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

Python2の場合:

$python get-pip.py

Python3の場合:

$python3 get-pip.py

今では私のために動作します。

0
lxy

投稿された他の回答のどれも私のために働いていませんでしたが、フォローコマンドを実行するとtが解決しました:

Sudo apt-get purge --auto-remove python3-pkg-resources python3-setuptools

0
Orny

詩を使っても同じ問題がありました。

ランニング

poetry run pip install --upgrade pip setuptools

の代わりに

pip install --upgrade pip setuptools

問題を修正しました。

0
Kazuya Gosho

私は一貫してこの問題を抱えていました(そして、python3インタープリターでpipを使用するために以下の回避策を使用しました)。驚いたことに、numpyのすべてのバージョンをアンインストールし、最新バージョンを再インストールした後、pipは再び機能し始めました。私は何が起こったのか確実に言うことはできませんが、他のすべてが失敗した場合、それは試してみるべきものかもしれません。

回避策(覚えていないいくつかのソースからまとめた)は

  1. python3を起動します
  2. pipを2回インポートする(最初にエラーが発生する)
  3. インタープリター内でpip.mainを使用します

これが転写です:

>>> 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
0
Moondoggy

Pip、setuptoolsの再インストールなど、あらゆる種類の方法を試しても、まだ問題を解決できません。 https://github.com/pypa/pip/issues/4216#issuecomment-28634868 の指示に従いますが、外部の警告が表示されます。その後、pipを使用してmatplotlibをアンインストールします。最後に、すべてのものは大丈夫のようです。

0
fordacre

これと同じ問題があり、pip3でコマンドを実行できませんでした(pip3 install --upgrade pip setuptoolsなどのコマンドを含む)。

私が見つけた唯一の修正は、python 3(Sudo apt-get remove python3Sudo apt-get install python3Sudo apt install python3-pip)を完全にアンインストールして再インストールすることでしたが、pip3は再び正常に動作するようになりました。