WSL 2上的Python3永远需要(超过6分钟)来导入密钥环

问题描述

在我的WSL2Ubuntu-20.04计算机上尝试运行pip命令时,我注意到了这个问题,运行任何命令都需要很长时间。我最终将范围缩小到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-unch命令本身似乎没有任何子进程,所以我使用strace来查看它挂在哪里:

connect(3, {sa_family=AF_INET, sin_port=htons(6000), sin_addr=inet_addr("<my main machine's IP>")}, 16) = 0
它似乎正在尝试连接到端口6000上的Windows主机计算机,但失败了?现在我只是不知道发生了什么,为什么花了这么长时间才失败。如有任何帮助,敬请惠顾!


解决方案

当我最终单击端口6000时,我已经准备好询问6000是什么意思。我很久以前就尝试在Windows上为WSL2设置X服务器以供使用。

让X服务器正常工作或取消设置DISPLAY环境变量,这样应该会立即将其清除。

export DISPLAY= 

希望这能帮助任何遇到这个模糊问题的人!

相关文章