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

問(wèn)題總結(jié):現(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。之前報(bào)錯(cuò)的numpy版本為1.20.0。安裝1.21.2和1.21.0版本之后,代碼也都可以正常運(yùn)行。充分說(shuō)明很多版本都可以正常運(yùn)行,只有某些特定的版本不能正常運(yùn)行。再次安裝1.20.0,程序竟然也可以正常運(yùn)行。其中緣由無(wú)從知曉。
問(wèn)題解決辦法總結(jié):更換numpy版本試試。
