首页 > 解决方案 > Pip 无法安装 - Debian WSL 上的错误“名称解析暂时失败”

问题描述

这是我的第一个 stackoverflow 问题!

最近 python pip install 已停止工作并给出以下错误:

pip3 安装 django

WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f07a41b75c0>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/django/

错误会重复几次,直到它放弃。

我在 Windows 10 上的 WSL(Linux 的 Windows 子系统)上的 Linux Debian 中使用 Python3。

经过一番搜索并看到一些建议后,我发现我的 /etc/resolv.conf 仅包含:

^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@

这看起来不太对劲……这可能是问题所在吗?

resolv.conf 应该包含什么?

考虑可能是什么根本原因......在此之前,计算机在运行 apache2 和 mysql 服务时意外关闭了电源(在 WSL 上的 debian 中),这会导致问题吗?

在此先感谢,马克

标签: python-3.xlinuxpipdebianwindows-subsystem-for-linux

解决方案


/etc/resolv.conf( manpage ) 通常只有几行,通常是自动生成的,这些行是从其网络配置的 DNS 配置中提取的。

在我的 WSL OpenSUSE 中,整个 resolv.conf 文件是:

# This file was automatically generated by WSL. To stop automatic generation of this file, remove this line.
nameserver 1.1.1.1

它从我家路由器的配置中提取。

我不确定为什么您的 resolv.conf 会与此有所不同,除非我尚未尝试过的较新的 WSL2 有点奇怪。

您可以尝试使用 1.1.1.1 或 8.8.8.8 等公共 DNS 手动配置一两个名称服务器。尽管在您确定是否存在潜在问题之前,这可能无法阻止它被覆盖。


在使用 NetworkManager 的已安装 Linux 系统而不是 WSL 上,它的前缀将是# Generated by NetworkManager而不是上面的 WSL 注释。


推荐阅读