c++調(diào)用python無法正確導入numpy
環(huán)境:win10+vs2017+anaconda+python3.7
問題描述:通過PyRun_SimpleString("import numpy")導入numpy,不會報錯,但是通過PyRun_SimpleString("print(numpy.arange(4))")卻無法打印出array。通過現(xiàn)象可以確定,c++代碼并沒有正確的導入numpy。
問題解決:通過各種嘗試,發(fā)現(xiàn)將numpy版本定為1.16.6之后,問題解決。如下圖所示,成功打印numpy.arange(4)。

問題總結:現(xiàn)在可用的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版本試試。
