无法构建使用 Python 的项目

Cannot build project which is using Python

提问人:Ufx 提问时间:1/20/2018 最后编辑:Ufx 更新时间:2/16/2018 访问量:1038

问:

我正在尝试在我的 Visual C++ 项目中使用 https://github.com/lava/matplotlib-cpp
我添加了库

Python36-32\libs\python36_d.lib Python36-32\libs\python3_d.lib

但我仍然会遇到错误

错误 LNK2019__imp_PyObject_GetAttrString:函数“private: __cdecl matplotlibcpp::d etail::_interpreter::_interpreter(void)”(??0_interpreter@detail@matplotlibcpp@@AEAA@XZ) 错误 LNK2019__imp__Py_NegativeRefcount:函数“bool __cdecl matplotlibcpp::p lot(class std::vector > const &,class std::vector > const &,class std::basic_string,class std::allocator > const &)”(??$plot@NN@matplotlibcpp@@YA_NAEBV?$vector@NV?$allocator@N@std@@@std@@0AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z) 错误 LNK2019:函数“bool __cdecl matplotlibcpp::p lot(class std::vector > const &,class std::vector __imp__Py_Dealloc> const &,class std::basic_string,class std::allocator > const &)”(??$plot@NN@matplotlibcpp@@YA_NAEBV?$vector@NV?$allocator@N@std@@@std@@0AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z) ...

我还需要添加什么?


现在可以建造了。我不知道发生了什么。现在我在这个地方遇到运行时错误

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

PyErr_Print()

ImportError:numpy.core.multiarray 导入失败

Python 工作室 可视化 C++ 未解析外部

评论


答:

0赞 Giorgos Soimoiris 2/10/2018 #1

也许您的系统中未安装 numpy 库。选择安装了 python 解释器的 python 环境,然后从“概述”向下滚动到 pip。键入“numpy”并安装它。您拥有的另一种选择是卸载 python 并安装 Anaconda,默认情况下包含 numpy 库。

0赞 ttq 2/16/2018 #2

我在使用调试模式时遇到了类似的问题。

克服此问题的一种方法是在使用 安装 numpy 并使用库后,在 Release 模式下构建它。python.exe -m pip install matplotlibpython36.lib