Windows Version: 10 Pro, Version 20H2 (OS Build 19042.1165)
WSL Version: 2
Ubuntu Version: 20.04
我正在我的Windows笔记本电脑上使用WSL 2,并试图使用pip
安装一些Python包(pytest
)。具体来说,我用Python=3.7
创建了一个Anaconda环境,并尝试在该环境中安装包。然而,该命令挂起了一段时间,然后我得到以下警告:
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f608eadaf90>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/pytest/
同样的事情重复,直到我按Ctrl-C。我最初安装了WSL版本1并升级到WSL版本2。当我使用WSL版本1时,我没有这个问题。当我在网上搜索时,似乎有几个人有类似的问题(但在实际异常方面略有不同),但我还没有遇到适合我的解决方案。
我也发现这不仅仅局限于pip
。我也无法克隆gitlab
(从工作)存储库。它会导致无法找到存储库的致命错误。我从这里找到了一个可能的解决方案。它说添加一个nameserver
到我的/etc/resolv.conf
。这是我当前的/etc/resolv.conf
:
nameserver 1.1.1.1
我手动添加最后一行。如文件中所示,我创建/etc/wsl.conf
是为了停止该文件的自动生成:
[network]
generateResolvConf = false
这可以工作,但是,我发出的命令需要一段时间才能开始(git clone
,pip
等)。
我真的不明白问题是什么,为什么添加nameserver 1.1.1.1
解决它,或者为什么它很慢。有解决办法吗?
谢谢。
我使用VM Ware Player有同样的问题,经常失败命名分辨率和升级到WM Player V17修复是今天。
我最终通过将nameserver 1.1.1.1
添加到这里建议的/etc/resolv.conf
来解决这个问题。虽然它可以正常工作和安装,但它需要很长时间才能开始下载。