fix(deps): 修复 pyasn1 版本冲突问题

问题原因:
- pyasn1>=0.5.0 移除了 pyasn1.compat.octets 模块
- python-jose==3.5.0 强制要求 pyasn1>=0.5.0
- 形成版本冲突,导致 pysnmp 无法导入

解决方案:
- pyasn1==0.4.8 (保留 compat.octets 的版本)
- pyasn1-modules==0.2.8 (配套版本)
- python-jose[cryptography]==3.3.0 (兼容 pyasn1 0.4.8)

验证:
- Python 3.10 & 3.11 均可正常导入
- FastAPI 应用可正常加载 (95 routes)
This commit is contained in:
Your Name
2026-07-23 14:10:59 +08:00
parent e0cba105b6
commit f66e4d41c9
2 changed files with 14 additions and 1 deletions
+9
View File
@@ -30,6 +30,15 @@
from pysnmp.hlapi.asyncio import bulkCmd, getCmd, nextCmd from pysnmp.hlapi.asyncio import bulkCmd, getCmd, nextCmd
``` ```
#### pyasn1 版本冲突解决
**问题**`pyasn1>=0.5.0` 移除了 `pyasn1.compat.octets` 模块,导致 pysnmp 导入失败。
同时 `python-jose==3.5.0` 强制要求 `pyasn1>=0.5.0`,形成版本冲突。
**解决方案**
- `pyasn1==0.4.8` - 锁定到包含 compat.octets 的版本
- `pyasn1-modules==0.2.8` - 配套版本
- `python-jose[cryptography]==3.3.0` - 兼容 pyasn1 0.4.8 的版本
### 依赖版本要求 ### 依赖版本要求
- `pysnmp-lextudio==5.0.31` - SNMP 协议兼容替代 - `pysnmp-lextudio==5.0.31` - SNMP 协议兼容替代
- `typing-extensions>=4.5.0` - 提供额外的类型支持 - `typing-extensions>=4.5.0` - 提供额外的类型支持
+5 -1
View File
@@ -13,11 +13,15 @@ alembic==1.13.1
# 注意: pysnmp 7.x 与 Python 3.10+/asyncio 存在兼容性问题 # 注意: pysnmp 7.x 与 Python 3.10+/asyncio 存在兼容性问题
# 使用 lextudio 维护的分支(向后兼容,支持 Python 3.6+ # 使用 lextudio 维护的分支(向后兼容,支持 Python 3.6+
pysnmp-lextudio==5.0.31 pysnmp-lextudio==5.0.31
# pyasn1 0.5.0+ 移除了 compat.octets 模块,与 pysnmp 不兼容
pyasn1==0.4.8
pyasn1-modules==0.2.8
scapy==2.5.0 scapy==2.5.0
python-dotenv==1.0.1 python-dotenv==1.0.1
passlib[bcrypt]==1.7.4 passlib[bcrypt]==1.7.4
httpx==0.27.0 httpx==0.27.0
python-jose[cryptography] # python-jose 3.5.0 需要 pyasn1>=0.5.0,与 pysnmp 冲突
python-jose[cryptography]==3.3.0
bcrypt==3.2.2 bcrypt==3.2.2
# typing-extensions 提供 Python 3.10+ 的向后兼容支持 # typing-extensions 提供 Python 3.10+ 的向后兼容支持
typing-extensions>=4.5.0 typing-extensions>=4.5.0