PyCrypto 2.6.1中number.py的2L在Python 3.8-slim-buster环境中变为2,但Python 3.11-slim-bookworm中不变的原因咨询
PyCrypto 2.6.1中number.py的2L在Python 3.8-slim-buster环境中变为2,但Python 3.11-slim-bookworm中不变的原因咨询
我最近在不同Python基础镜像的Docker容器里使用PyCrypto 2.6.1时遇到了一个奇怪的问题。
背景
我在两个不同的Docker环境中安装pycrypto==2.6.1:
- Python:3.8-slim-buster
- Python:3.11-slim-bookworm
现象
PyCrypto的Crypto/Util/number.py文件里,原始代码的第139行是使用2L的。但我检查两个环境中安装完成的库时发现:
- 在Python 3.8-slim-buster环境中,这行代码变成了
2(没有后缀L) - 在Python 3.11-slim-bookworm环境中,这行代码还是
2L(和原始代码一致)
我已经排查的内容
- 两个环境安装的都是同一个版本的PyCrypto(2.6.1)
- 我用
pip install --verbose命令查看了安装过程,没有看到任何明确提示表明安装时修改了源代码 - 两个环境使用的pip版本不同:Python 3.8镜像用的是pip 23.0.1,Python 3.11镜像用的是pip 24.0
有没有大佬能帮我分析下为什么会出现这种情况?或者PyCrypto的源代码会不会在安装时被动态修改?非常感谢!
备注:内容来源于stack exchange,提问作者Zheng
相关产品推荐
相关产品推荐

