2

当我尝试pip在我的机器上运行命令时,我注意到了这个问题WSL2 Ubuntu-20.04,它需要很长时间才能运行任何东西。我终于把它缩小到何时pip导入keyring模块。

Python 3.8.5 (default, May 27 2021, 13:30:53)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import time
>>> def import_keyring():
...     time_start = time.time()
...     import keyring
...     print(f"Keyring took {time.time() - time_start} seconds to load")
...
>>> import_keyring()
Keyring took 400.4930064678192 seconds to load

查看进程资源管理器,似乎有一个正在等待的子进程:

 dbus-launch --autolaunch <32 character hex string> --binary-syntax --close-stderr

dbus-launch 命令本身似乎没有任何子进程,所以我曾经strace看到它挂在哪里:

connect(3, {sa_family=AF_INET, sin_port=htons(6000), sin_addr=inet_addr("<my main machine's IP>")}, 16) = 0

它看起来正在尝试连接到端口 6000 上的主机 Windows 计算机并且失败了?现在我只是不知道正在发生的事情以及为什么要花这么长时间才能失败。任何帮助表示赞赏!

4

1 回答 1

4

当最终单击端口的6000含义时,我已经准备好询问。WSL2很久以前我尝试在 Windows 上设置 X 服务器以供使用。

要么让 X 服务器正常工作,要么取消设置你的DISPLAY环境变量,这应该可以立即清除它。

export DISPLAY= 

希望这可以帮助其他遇到这个晦涩问题的人!

于 2021-07-13T21:30:50.660 回答