私の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
- まず、パッケージを再インストールしてみてください。
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が機能しないため、以下を試してください。
python -m pip uninstall pip # removes the pip installed using pip
端末を閉じて再度開いてpip
動作することを確認してください。上記のコマンドでエラーが発生した場合は、次の手順に進みます。
- システムパッケージの削除:
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を繰り返す必要があります。
- 正常に削除された場合
pip
:
pacman -S python-pip # installs the package
pip
動作していることを確認してください。
pip
最後の手段:これらの方法のいずれも機能しない場合は、新しいインストール場所(たとえば)を指すようにパスを設定する必要があります。alias pip="/usr/local/bin/pip"
これは厄介な解決策です。そうでなければどうすればいいのかわかりません。 OSを再インストールする必要があるかもしれません。