【问题标题】:ValueError: check_hostname requires server_hostname, pip, windowsValueError: check_hostname 需要 server_hostname、pip、windows
【发布时间】:2021-11-02 08:19:04
【问题描述】:
File "...\AppData\Local\Programs\Python\Python310\lib\site-packages\pip\_vendor\urllib3\connection.py", line 500, in _connect_tls_proxy
return ssl_wrap_socket(
File "...\AppData\Local\Programs\Python\Python310\lib\site-packages\pip\_vendor\urllib3\util\ssl_.py", line 453, in ssl_wrap_socket
ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls)
File "...\AppData\Local\Programs\Python\Python310\lib\site-packages\pip\_vendor\urllib3\util\ssl_.py", line 495, in _ssl_wrap_socket_impl
return ssl_context.wrap_socket(sock) 
File "...\AppData\Local\Programs\Python\Python310\lib\ssl.py", line 512, in wrap_socket
return self.sslsocket_class._create(
File "...\AppData\Local\Programs\Python\Python310\lib\ssl.py", line 1027, in _create
raise ValueError("check_hostname requires server_hostname")
ValueError: check_hostname requires server_hostname

无论我尝试什么 - pip 返回相同的错误消息。而且我很难追查这个问题的原因。

环境:Windows 10(最新版本),代理。 代理已设置(也在变量中)。它有效。此外,我编写了一个简单的 python 程序,使用 urllib 的请求检索网页 - 它可以在这个代理服务器上运行。

我尝试通过命令行在 pip 中强制代理,我尝试使用所有这些受信任的主机参数 - 一切都失败了。我直接从网页重新安装了python。什么都没有。

奇怪的是——同样的代理可以在 linux 系统上完美运行。 F.e.命令:

pip3 install panda --proxy http://192.168.100.30:8088

在 Linux 上工作(相同的子网、相同的代理、相同的防火墙),但在我尝试的每个 Windows 上都失败(我尝试过其他系统)。这意味着我仍然缺少 Windows 机器上的一些代理设置。但是哪个?为什么python环境中的请求与代理完全没有问题?

【问题讨论】:

  • 两个系统上的 pip --version 不同?
  • 好点。我升级了linux上的版本。 21.3.1.仍然有效。在 Windows 上,我有来自安装程序的版本 - 21.2.3。由于上述问题,无法升级。但这种差异应该是个问题。
  • 通过轮子升级pipstackoverflow.com/a/68945239/7976758
  • 奇怪。我确实通过轮子进行了升级。现在我确实有相同的版本,但不同的错误:警告:在连接被'ProxyError('无法连接到proxy.', NewConnectionError(': 无法建立新连接: [Errno 11001] getaddrinfo failed'))': /simple/django/
  • 这就是我的想法,但奇怪的是,使用网页完全没有问题,使用 urllib 下载页面,许多其他包管理器也可以正常工作。我在我的 linux 机器上使用相同的 DNS 设置。但我会尝试朝这个方向挖掘。无论如何,我能够使用下载的轮子安装我需要的东西,所以我不再那么紧急了。

标签: python pip


【解决方案1】:

在 Windows 上运行相同的命令 pip3 install panda --proxy http://192.168.100.30:8088,但在此之前,请确保未选择任何代理。您可以通过转到Internet Explorer >> Settings >> Internet Options >> Connections >> Lan Settings 并取消选中所有三个复选框来做到这一点

【讨论】:

    猜你喜欢
    • 2021-08-21
    • 2021-09-15
    • 2015-04-02
    • 1970-01-01
    • 2021-06-27
    • 1970-01-01
    • 2022-01-25
    • 2019-06-09
    • 2018-12-31
    相关资源
    最近更新 更多