
며칠 전, 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
댓글에 있는 Anaksunaman 덕분에 알아냈습니다. 나는 팔로우했다이 게시물GitHub에 올렸더니 효과가 있었어요!
문제는 제가 사용하고 있던 X-Server의 DISPLAY 변수를 내보내는 데 있었습니다. .bashrc에서 해당 라인을 주석 처리하면 pip가 다시 작동합니다.
누군가 설명해 주시면 감사하겠습니다.왜이 줄은 주석에서 깨졌습니다.
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2; exit;}'):0.0