Matplotlibcpp - проблема импорта модулей Python - PullRequest
0 голосов
/ 04 марта 2019

Я видел эту проблему для пользователей Mac OS, но в настоящее время я нахожусь на Windows10, и я не знаю, как это исправить.

Я использую Visual Studio 2017 и Python 2.7.Тем не менее, у меня также есть 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 является вызовом PY_DECREF для pyplotname)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...