在运行Ubuntu20.04的WSL2下,我尝试在pip运行pip install virtualenv
的情况下安装virtualenv,但该命令只是挂起不打印任何内容
我终止了它,并按照建议用python3 -v -m pip install virtualenv
再次运行它here,它挂在import 'keyring.backends.OS_X'
行上:
[...]
# /usr/lib/python3/dist-packages/keyring/backends/__pycache__/_OS_X_API.cpython-38.pyc matches /usr/lib/python3/dist-packages/keyring/backends/_OS_X_API.py
# code object from '/usr/lib/python3/dist-packages/keyring/backends/__pycache__/_OS_X_API.cpython-38.pyc'
# destroy keyring.backends._OS_X_API
import 'keyring.backends.OS_X' # <_frozen_importlib_external.SourceFileLoader object at 0x7fa66c4b4610>
我已经试着运行python -m pip install some_package_you_want
作为回答here,但是同样的问题发生了
此外,我还尝试按照建议导出PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring
环境变量here,但不幸的是,它也没有解决问题
编辑:python3 -v -m pip install virtualenv
命令在挂起大约5分钟后最终成功
EDIT2:我认为问题在于WSL2的速度太慢,正如前面评论的here。最后,我用sudo apt-get install python3-venv
安装了virtualenv(venv),并用python3 -v -m venv venv
命令激活了虚拟环境,类似的挂起问题现在出现在挂在这里大约2分钟的import 'argparse' # <_frozen_importlib_external.SourceFileLoader object at 0x7ff1bc5f1c40>
行上。这支持WSL2慢度问题
我对日志进行了一些挖掘,对display value set和display value empty运行了
python3 -v -m pip install packageName
命令。如果显示值为空,则会发生以下情况:但是对于设置为某物的显示值,包的收集不会发生,它直接从导入总线到包装器
Jeepney是D-Bus的纯Python接口,D-Bus是桌面Linux上用于进程间通信的协议。如果设置了DISPLAY值,那么它与wsl2的交互可能会变得有点滑稽,这可能导致了问题。但在显示值设置为空的情况下,效果非常理想
是否设置了
DISPLAY
环境变量?如果是这样的话,在运行pip之前先清除它对我来说很有效:(或者,作为一行:
DISPLAY= pip install <packagename>
)相关问题 更多 >
编程相关推荐