无法加载Python C扩展

维吉尔

我试图将一些python嵌入到我的Visual Studio C ++代码中。C ++代码是:

#include    <Python.h>

int main ()
{
    char filename[] = "hello_world.py";
    FILE* fp;

    PyObject* pInt;
    Py_Initialize();

    fp = _Py_fopen(filename, "r");
    PyRun_SimpleFile(fp, filename);

    Py_Finalize();


    return 0;
}

和相关的python脚本是:

import importlib
np = importlib.import_module('numpy')
plt = importlib.import_module('matplotlib.pyplot')

print("hello world")

plt.figure()
plt.plot(1,1)
plt.show(block=True)

当我实际运行代码时,出现以下错误:

重要提示:请阅读此建议,以了解如何解决此问题!

导入numpy C扩展名失败。发生此错误的原因有很多,通常是由于设置问题或NumPy的安装方式。

我们在以下位置整理了一些常见原因和故障排除提示:

https://numpy.org/devdocs/user/troubleshooting-importerror.html

请注意并检查以下内容:

  • Python版本是:来自“ D:\ 4D Avsys \ Code \ Temp \ Temp \ Debug \ Temp.exe”的Python3.8
  • NumPy版本是:“ 1.19.1”

并确保它们是您期望的版本。请仔细研究上面链接的文档以获得更多帮助。

原始错误是:没有名为“ numpy.core._multiarray_umath”的模块

我已经阅读了错误输出中提供的url,找不到解决该问题的方法。阅读关于同一问题的其他几篇文章后,我做了以下工作:

  1. 在计算机上卸载所有版本的python。
  2. 重新安装了适用于Windows的Python版本3.8。(允许安装程序添加路径变量以及下载的调试符号和库)。
  3. 通过pip install安装了matplotlib
  4. 通过pip卸载并重新安装了setuptools和numpy
  5. 在cmd和powershell中成功运行python代码(VS开发人员和常规环境)

我可以通过c ++运行简单的python代码,因此我很确定那一部分还可以。

提前致谢。

编辑[找到解决方案]:

阅读https://github.com/numpy/numpy/issues/15919后,如果将Visual Studio置于发布模式,则导入numpy不再存在任何问题。确保再次更新项目的属性,以在项目中包含python \ include和\ libs目录。

维吉尔

阅读https://github.com/numpy/numpy/issues/15919后,如果将Visual Studio置于发布模式,则导入numpy不再存在任何问题。确保再次更新项目的属性,以在项目中包含python \ include和\ libs目录。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TOP 榜单

热门标签

归档