pip 装完 openai 后 import 直接报 module httpx has no attribute Client,环境里的 httpx 是 0.13,另一个内部包把它钉死了。
原因不止一个,得分开看。内部包 requirements 锁了旧 httpx;pip 解析时先满足了旧约束;虚拟环境里存在多份 httpx;安装顺序不同导致结果不同。
先看依赖树与冲突点
pip check
随后找出谁在钉版本
pipdeptree -p httpx
升级到受支持的版本并重装
pip install -U "httpx>=0.27" openai
剩下的就是在干净虚拟环境里复验
python -m venv .venv; .venv/Scripts/python -c "import openai;print(openai.__version__)"
这类问题以前遇到过,但这次的触发条件和上次不一样。
这类改动我都写进变更记录,过两周再出问题时能对上号。
我习惯把每一步的执行时间和结果记在一边,后面复盘省事。
改之前我把相关日志按时间截了一段存着,事后对时间线用得上。
中途换过一次思路,把范围缩到最小的那一层,反而快了。
改完先别撤,确认这几项。pip check 无冲突,import openai 正常,一次请求能拿到 200。
提醒一点。冲突要顺着依赖树找钉版本的那一方,直接强行升级常常被另一个包再降回去。监控比日志更早给出信号,事后回看经常能提前半小时发现异常。
