PipはArch Linuxで動作を停止します。

PipはArch Linuxで動作を停止します。

私のArchシステムでPipを使用しようとすると、次のエラーが発生します。

Traceback (most recent call last):
  File "/usr/bin/pip", line 5, in <module>
    from pip._internal.cli.main import main
  File "/usr/lib/python3.10/site-packages/pip/_internal/cli/main.py", line 9, in <module>
    from pip._internal.cli.autocompletion import autocomplete
  File "/usr/lib/python3.10/site-packages/pip/_internal/cli/autocompletion.py", line 10, in <module>
    from pip._internal.cli.main_parser import create_main_parser
  File "/usr/lib/python3.10/site-packages/pip/_internal/cli/main_parser.py", line 8, in <module>
    from pip._internal.cli import cmdoptions
  File "/usr/lib/python3.10/site-packages/pip/_internal/cli/cmdoptions.py", line 24, in <module>
    from pip._internal.cli.parser import ConfigOptionParser
  File "/usr/lib/python3.10/site-packages/pip/_internal/cli/parser.py", line 12, in <module>
    from pip._internal.configuration import Configuration, ConfigurationError
  File "/usr/lib/python3.10/site-packages/pip/_internal/configuration.py", line 26, in <module>
    from pip._internal.utils.logging import getLogger
  File "/usr/lib/python3.10/site-packages/pip/_internal/utils/logging.py", line 29, in <module>
    from pip._internal.utils.misc import ensure_dir
  File "/usr/lib/python3.10/site-packages/pip/_internal/utils/misc.py", line 37, in <module>
    from pip._vendor.pep517 import Pep517HookCaller
ImportError: cannot import name 'Pep517HookCaller' from 'pep517' (/home/krystian/.local/lib/python3.10/site-packages/pep517/__init__.py)

しないでくださいPipパッケージとArchパッケージを混在させましたが、仮想環境の外部でPipを実行するとこのエラーが表示され、パッケージを削除できません。それでも仮想環境でPipを使用でき、pacmanを介してPythonパッケージを管理できます。

Pythonバージョン:3.10.6

答え1

明らかに、この問題はPipパッケージのインストールとは関係ありませんが、私の環境ではパッケージが破損してsudoいます。 Pipを使用せずに削除してパッケージを削除すると、問題が解決しました。これを行う前にディレクトリをバックアップすることを忘れないでください。pep517~/.local/lib/python3.10~/.local/lib/python3.10/site-packages/pep517/site-packages

答え2

  1. まず、パッケージを再インストールしてみてください。
sudo pacman -S python-pip     # reinstalls pip
which pip                     # checks the location of pip
pip install -U pip            # DO NOT RUN AS SUDO! Upgrades pip
which pip                     # check the if the path is the same as previously
hash -r                       # clears bash cache
which pip                     # path *should* now be /usr/local/bin/pip
sudo reboot                   # reboots the machine

運が良ければ、他のパッケージを台無しにせず、すべてが正常に戻ります。そうでない場合は、私に連絡してください。問題を解決するために最善を尽くします。


編集する:

  1. オプション1が機能しないため、以下を試してください。
python -m pip uninstall pip   # removes the pip installed using pip

端末を閉じて再度開いてpip動作することを確認してください。上記のコマンドでエラーが発生した場合は、次の手順に進みます。

  1. システムパッケージの削除:
pacman -Rsn python-pip        # removes the package, unrequired deps, and their configuration files
whereis pip                   # check that pip has been completely removed

pip結果がシステムにまだ存在する場合は、手順2でコマンドを実行してsudoから手順3を繰り返す必要があります。

  1. 正常に削除された場合pip
pacman -S python-pip          # installs the package

pip動作していることを確認してください。

  1. pip最後の手段:これらの方法のいずれも機能しない場合は、新しいインストール場所(たとえば)を指すようにパスを設定する必要があります。alias pip="/usr/local/bin/pip"これは厄介な解決策です。そうでなければどうすればいいのかわかりません。 OSを再インストールする必要があるかもしれません。

関連情報