
数日前、pip3が動かなくなるという問題が発生しました。いずれにせよWSL2をアップグレードするつもりだったので、Ubuntu 20に移行しました。しかし、ここでも同じ問題が発生しました。インストールできません。何でもpip3 を使用。
-vvv を使用すると、まったく同じ結果、つまり何も起こりません。すでに再インストールを試みました:
sudo apt purge *python3-pip* && sudo apt install python3-pip
はい、約 20 分待っていますが、何も起こりません。 を実行するとヘルプ メニューが機能しpip3
、pip3 freeze
コマンドは機能しますが、インストールとアンインストールは機能しません。おそらく関係ありませんが、Ctrl + C で強制終了したときに表示されるメッセージは次のとおりです。
File "/usr/bin/pip3", line 11, in <module>
load_entry_point('pip==20.0.2', 'console_scripts', 'pip3')()
File "/usr/lib/python3/dist-packages/pip/_internal/cli/main.py", line 73, in main
command = create_command(cmd_name, isolated=("--isolated" in cmd_args))
File "/usr/lib/python3/dist-packages/pip/_internal/commands/__init__.py", line 96, in create_command
module = importlib.import_module(module_path)
File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 783, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/usr/lib/python3/dist-packages/pip/_internal/commands/uninstall.py", line 9, in <module>
from pip._internal.cli.req_command import SessionCommandMixin
File "/usr/lib/python3/dist-packages/pip/_internal/cli/req_command.py", line 19, in <module>
from pip._internal.network.session import PipSession
File "/usr/lib/python3/dist-packages/pip/_internal/network/session.py", line 26, in <module>
from pip._internal.network.auth import MultiDomainBasicAuth
File "/usr/lib/python3/dist-packages/pip/_internal/network/auth.py", line 36, in <module>
import keyring # noqa
File "/usr/lib/python3/dist-packages/keyring/__init__.py", line 3, in <module>
from .core import (
File "/usr/lib/python3/dist-packages/keyring/core.py", line 189, in <module>
init_backend()
File "/usr/lib/python3/dist-packages/keyring/core.py", line 93, in init_backend
keyrings = filter(limit, backend.get_all_keyring())
File "/usr/lib/python3/dist-packages/keyring/util/__init__.py", line 21, in wrapper
func.always_returns = func(*args, **kwargs)
File "/usr/lib/python3/dist-packages/keyring/backend.py", line 210, in get_all_keyring
return list(rings)
File "/usr/lib/python3/dist-packages/keyring/util/__init__.py", line 31, in suppress_exceptions
for callable in callables:
File "/usr/lib/python3/dist-packages/keyring/util/properties.py", line 26, in __get__
return self.fget.__get__(None, owner)()
File "/usr/lib/python3/dist-packages/keyring/backend.py", line 67, in viable
cls.priority
File "/usr/lib/python3/dist-packages/keyring/util/properties.py", line 26, in __get__
return self.fget.__get__(None, owner)()
File "/usr/lib/python3/dist-packages/keyring/backends/kwallet.py", line 140, in priority
return super(DBusKeyringKWallet4, cls).priority - 1
File "/usr/lib/python3/dist-packages/keyring/util/properties.py", line 26, in __get__
return self.fget.__get__(None, owner)()
File "/usr/lib/python3/dist-packages/keyring/backends/kwallet.py", line 37, in priority
bus = dbus.SessionBus(mainloop=DBusGMainLoop())
File "/usr/lib/python3/dist-packages/dbus/_dbus.py", line 212, in __new__
return Bus.__new__(cls, Bus.TYPE_SESSION, private=private,
File "/usr/lib/python3/dist-packages/dbus/_dbus.py", line 102, in __new__
bus = BusConnection.__new__(subclass, bus_type, mainloop=mainloop)
File "/usr/lib/python3/dist-packages/dbus/bus.py", line 124, in __new__
bus = cls._new_for_bus(address_or_type, mainloop=mainloop)
File "/usr/lib/python3/dist-packages/dbus/exceptions.py", line 47, in __init__
def __init__(self, *args, **kwargs):
KeyboardInterrupt
困惑しています。これは非常に迷惑なエラーです。念のため言っておきますが、私は Microsoft Store の Ubuntu 20.04 LTS で WSL2 を使用しています。ありがとうございます。
答え1
コメント欄のアナクスナマンのおかげで分かりました。この郵便受けGitHub で、そしてうまくいきました!
結局、問題は私が使用していた X サーバーの DISPLAY 変数をエクスポートすることだったことがわかりました。.bashrc からその行をコメントアウトすると、pip は再び動作します。
誰か説明していただければ幸いですなぜこの行はコメントを破っていました:
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2; exit;}'):0.0