【问题标题】:How do I import a python library while behind a proxy?如何在代理后面导入 python 库?
【发布时间】:2022-10-25 22:00:34
【问题描述】:

我正在尝试使用以下方法导入 python 库:

import cenpy as cp

但我收到一条错误消息:

ConnectionError: HTTPSConnectionPool(host='api.census.gov', port=443): Max retries exceeded with url: /data.json (由 NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x0000013167B552B0>: 未能建立新连接:[WinError 10060] 连接尝试失败,因为连接的一方在一段时间后没有正确响应,或者建立连接失败,因为连接的主机没有响应'))

我之前在调用网站时遇到过这个问题。它与代理设置有关。我使用如下代码解决了其他问题:

import requests

s = requests.Session()

s.proxies = {
     "https":"https://user:pass@server:port", 
     "http":"http://user:pass@server:port"
     }

接着:

s.get('http://web.address')

是否有实现请求会话以便我能够导入库?

使用 Python 3.9.12

【问题讨论】:

    标签: python api session python-requests proxy


    【解决方案1】:

    所以我做了更多的挖掘,发现库在导入期间确实调用了 API。似乎有一种解决方法,但尚未实现他们的代码。我尝试了更多的东西,我想分享对我有用的东西。在导入库进行调用之前,您必须确保下面的代码运行。此代码应允许所有其他调用/获取请求通过代理运行,而无需使用请求会话。

    下面的sn-ps会设置代理环境变量

    import os
    os.environ['http_proxy'] = 'http://<user>:<pass>@<proxy>:<port>'
    os.environ['https_proxy'] = 'http://<user>:<pass>@<proxy>:<port>'
    

    或者更彻底:

    import os
    proxy = 'http://<user>:<pass>@<proxy>:<port>'
    os.environ['http_proxy'] = proxy 
    os.environ['HTTP_PROXY'] = proxy
    os.environ['https_proxy'] = proxy
    os.environ['HTTPS_PROXY'] = proxy
    

    请记住,这应该位于脚本的最顶部,或者至少在任何连接请求之前。另外,请确保您为代理使用正确的 IP 地址,因为这也让我感到困惑。

    信用去herehere

    【讨论】:

      猜你喜欢
      • 2018-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-05
      • 1970-01-01
      相关资源
      最近更新 更多