首页 > 解决方案 > WSL 2 Ubuntu 20.04 中的名称服务器问题

问题描述

Windows Version: 10 Pro, Version 20H2 (OS Build 19042.1165)
WSL Version: 2
Ubuntu Version: 20.04

我正在我的 Windows 笔记本电脑上使用 WSL 2,并尝试pytest使用pip. 具体来说,我创建了一个 Anaconda 环境,Python=3.7并尝试在该环境中安装该软件包。但是,该命令会挂起一段时间,然后我收到以下警告:

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 clonepip)。

我真的不明白问题是什么,为什么添加nameserver 1.1.1.1可以解决它或者为什么它很慢。有解决办法吗?

谢谢。

标签: pipubuntu-20.04wsl-2

解决方案


我最终解决了这个问题,只需按照这里的建议添加nameserver 1.1.1.1到我的。虽然它可以正常工作并安装其应有的功能,但开始下载只需要很长时间。/etc/resolv.conf


推荐阅读