c++调用python无法正确导入numpy
共 1273字,需浏览 3分钟
·
2021-08-26 22:07
环境:win10+vs2017+anaconda+python3.7
问题描述:通过PyRun_SimpleString("import numpy")导入numpy,不会报错,但是通过PyRun_SimpleString("print(numpy.arange(4))")却无法打印出array。通过现象可以确定,c++代码并没有正确的导入numpy。
问题解决:通过各种尝试,发现将numpy版本定为1.16.6之后,问题解决。如下图所示,成功打印numpy.arange(4)。
问题总结:现在可用的numpy版本有
1.3.0, 1.4.1, 1.5.0, 1.5.1, 1.6.0, 1.6.1, 1.6.2, 1.7.0, 1.7.1, 1.7.2, 1.8.0, 1.8.1, 1.8.2, 1.9.0, 1.9.1, 1.9.2, 1.9.3, 1.10.0.post2, 1.10.1, 1.10.2, 1.10.4, 1.11.0, 1.11.1, 1.11.2, 1.11.3, 1.12.0, 1.12.1, 1.13.0rc1, 1.13.0rc2, 1.13.0, 1.13.1, 1.13.3, 1.14.0rc1, 1.14.0, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.14.5, 1.14.6, 1.15.0rc1, 1.15.0rc2, 1.15.0, 1.15.1, 1.15.2, 1.15.3, 1.15.4, 1.16.0rc1, 1.16.0rc2, 1.16.0, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.16.6, 1.17.0rc1, 1.17.0rc2, 1.17.0, 1.17.1, 1.17.2, 1.17.3, 1.17.4, 1.17.5, 1.18.0rc1, 1.18.0, 1.18.1, 1.18.2, 1.18.3, 1.18.4, 1.18.5, 1.19.0rc1, 1.19.0rc2, 1.19.0, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.19.5, 1.20.0rc1, 1.20.0rc2, 1.20.0, 1.20.1, 1.20.2, 1.20.3, 1.21.0rc1, 1.21.0rc2, 1.21.0, 1.21.1, 1.21.2。之前报错的numpy版本为1.20.0。安装1.21.2和1.21.0版本之后,代码也都可以正常运行。充分说明很多版本都可以正常运行,只有某些特定的版本不能正常运行。再次安装1.20.0,程序竟然也可以正常运行。其中缘由无从知晓。
问题解决办法总结:更换numpy版本试试。