Matplotlibcpp-导入Python模块时出现问题

时间:2019-03-04 11:38:53

标签: python c++ visual-studio matplotlib

我已经看到Mac OS用户会遇到此问题,但是我目前在Windows10上,而且我不知道如何解决此问题。

我正在使用Visual Studio 2017和Python 2.7。但是,我的PC上也有Python 3.7和Anaconda,所以我希望这不会把链接程序弄乱到正确的库中。

我正在使用这个图书馆https://github.com/lava/matplotlib-cpp

在matplotlibcpp.h的第137行。我遇到一个异常:

Excepción producida en 0x00007FFFCF28E78A (ntdll.dll) en ConsoleApplication2.exe: 0xC0000008: An invalid handle was specified.

这是代码失败的一部分(第137行是对pyplotname的PY_DECREF调用)

PyObject* matplotlibname = PyString_FromString("matplotlib");
    PyObject* pyplotname = PyString_FromString("matplotlib.pyplot");
    PyObject* cmname  = PyString_FromString("matplotlib.cm");
    PyObject* pylabname  = PyString_FromString("pylab");
    if (!pyplotname || !pylabname || !matplotlibname || !cmname) {
      throw std::runtime_error("couldnt create string");
    }

    PyObject* matplotlib = PyImport_Import(matplotlibname);
    Py_DECREF(matplotlibname);
    if (!matplotlib) { throw std::runtime_error("Error loading module matplotlib!"); }

    // matplotlib.use() must be called *before* pylab, matplotlib.pyplot,
    // or matplotlib.backends is imported for the first time
    if (!s_backend.empty()) {
        PyObject_CallMethod(matplotlib, const_cast<char*>("use"), const_cast<char*>("s"), s_backend.c_str());
    }

    PyObject* pymod = PyImport_Import(pyplotname);
    Py_DECREF(pyplotname);
    if (!pymod) { throw std::runtime_error("Error loading module matplotlib.pyplot!"); }

当我在终端中输入import matplotlib.pyplot时(使用python2.7),它运行良好:

Importing pyplot in terminal

如果我在第119行中操作了该名称,那么我写的是“ matplotlib / pyplot”而不是“ matplotlib.pyplot”,而是到达第138行,并按预期方式弹出错误消息。

所以我想它正在找到模块,但是一旦他打开它,就会出现错误。有任何想法吗?我在Mac上看到过很多关于此的文章,但在Windows上却没有。

这些是我的路径用户:

environmental variables

这些是我的路径系统:

environmental variables

我在系统中也有一个PYTHONPATH:

environmental variables

1 个答案:

答案 0 :(得分:0)

我有一个相同的错误。我正在使用anakonda python发行版。 我通过重新安装matplotlib修复了该错误。 pip卸载matplotlib pip安装matplotlib

确保在用户级别定义以下环境变量。 PYTHONHOME C:\ Anaconda3 PYTHONPATH C:\ Anaconda3 QT_QPA_PLATFORM_PLUGIN_PATH %PYTHONHOME%库/插件/平台