requests库:ImportError: cannot import name UnverifiedHTTPSConnection

执行下面这个导包命令报错: 

from requests.packages.urllib3.connection import UnverifiedHTTPSConnection

 ImportError: cannot import name UnverifiedHTTPSConnection

 查了半天没太多有用信息,盲猜是版本问题。果然通过requirements.txt文件安装的版本跟线上项目的文件版本不太一样。

把urllib3和chardet的版本改成线上的版本就ok了。

requests库的源码:

try:
    check_compatibility(urllib3.__version__, chardet.__version__)
except (AssertionError, ValueError):
    warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "
                  "version!".format(urllib3.__version__, chardet.__version__),
                  RequestsDependencyWarning)

可以看到,requests库对urllib3和chardet的版本有要求。

每次搞新项目最烦的就是配环境,哪怕docker也会碰到各种问题。

总结写import的错误常见的可能原因:

1、项目的自己写的包或者模块跟第三方重名了

2、再就是版本不对应,或者依赖版本不对应

3、可能是缺少系统级依赖,或者依赖版本不对,不过感觉这一般是安装的时候出问题的原因。

 

 

 

 

### 解决 Python 中 `ImportError: cannot import name 'OpenAI'` 的方法 当遇到 `ImportError: cannot import name 'OpenAI' from partially initialized module 'openai' (most likely due to a circular import)` 这样的错误时,通常意味着存在循环导入问题或是模块初始化未完成的情况[^2]。 #### 1. 检查 OpenAI 的安装状态 确认 openai 已经正确安装。可以尝试重新安装该来解决问题: ```bash pip uninstall openai pip install openai ``` 如果使用的是特定版本,则应指定版本号进行安装。 #### 2. 验证环境配置 确保当前使用的 Python 环境与安装 openai 的环境一致。有时不同环境中可能存在同名包的不同版本冲突情况。 #### 3. 排除循环依赖 仔细审查代码结构,特别是涉及到 `import` 语句的地方。如果有两个文件相互之间进行了直接或间接的导入操作,就可能导致部分加载失败从而引发此异常。调整模块间的依赖关系,避免形成闭环。 #### 4. 更新至最新稳定版 考虑到可能是由于旧版本中存在的 bug 导致的问题,建议升级到最新的稳定发布版本: ```bash pip install --upgrade openai ``` #### 5. 替代方式获取 API 客户端实例 作为临时措施,在某些情况下可以直接创建 HTTP 请求而不必通过官方 SDK 来调用 OpenAI API 。不过这种方法不推荐长期使用,因为缺乏封装和支持。 ```python import requests url = "https://api.openai.com/v1/completions" headers = {"Authorization": f"Bearer YOUR_API_KEY"} data = { "model": "text-003", "prompt": "Say this is a test", } response = requests.post(url, headers=headers, json=data) print(response.json()) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值