最近在复现代码,环境requirement.txt安装之类的常规操作,主要涉及到的就是pytorch和python版本等等。本来安装的过程还算顺利,但一运行就报错:
A module that was compiled using NumPy 1.x cannot be run in
NumPy 2.0.0 as it may crash. To support both 1.x and 2.x
versions of NumPy, modules must be compiled with NumPy 2.0.
Some module may need to rebuild instead e.g. with ‘pybind11>=2.12’
问题原因:查阅相关资料和官网后后发现,应该是python3.9-3.12或者比较新的python版本,下载了numpy2.0的新版本,而numpy2.0是新发布的,与不同的python,torch版本之间的兼容性还不稳定,所以可能才会出现以上报错。
解决方案:直接更换numpy版本
pip install numpy==1.22.4
衍生问题和其他方法:
一开始在尝试换版本的时候,我换到了numpy1.26.0,但复现的代码里面有显示numpy.long不支持。一查才发现1.26.0又不支持.long。所以推断我们可以根据报错,和python的版本匹配,调整到最适合的numpy版本:
pip index versions numpy
不同可安装的版本显示:
Python与Numpy的对应:
下载了1.22.4发现没有兼容性问题了,可以成功运行代码。问题得到解决。