我正在尝试将matplotlib-cpp用于Visual Studio使用CMake编译的C ++项目。
我使用的python发行版是Anaconda2(今天下载的最新2.7版本)。我删除了计算机上的所有其他python发行版。
我将Anaconda2文件夹的路径添加到系统AND用户环境变量。 (C:\ Anaconda2 ...)
与使用CMake配置项目时一样,CMake可以正确找到它,
Found PythonInterp: C:/Anaconda2/python.exe (found suitable version "2.7.16", minimum required is "2.7")
Found PythonLibs: C:/Anaconda2/libs/python27.lib (found suitable version "2.7.16", minimum required is "2.7")
该项目使用VS可以正确构建(没有构建或链接错误),但是当我运行快速的hello world时,出现错误:
Hello World!
ImportError: No module named site
这是main.cpp:
#include <iostream>
using namespace std;
#include "matplotlibcpp.h"
namespace plt = matplotlibcpp;
int main(int argc, char **argv)
{
cout << "Hello World!" << endl;
plt::plot({ 1,3,2,4 });
plt::show();
return 0;
}
这是CMakeLists.txt:
cmake_minimum_required(VERSION 3.0)
project(PLT)
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
# main app
add_executable(
plt
src/main.cpp
)
# Matplotlib
find_package(PythonInterp 2.7 REQUIRED)
find_package(PythonLibs 2.7 REQUIRED)
include_directories(${PYTHON_INCLUDE_DIRS})
target_link_libraries(plt ${PYTHON_LIBRARIES})
我在这个论坛上读到这可能是由某些Path问题引起的,但是设置了python目录的路径:
我正在使用Microsoft Visual Studio 2017与CMake的“ Visual Studio 15 2017 Win64”生成器进行构建,并且通过“ cmd”运行程序,我认为问题在于配置“ cmd”使用的默认python。
我确定我是在Anaconda Python的提示符下尝试过matplotlib的,并且可以正常工作。
关于如何解决此问题的任何想法?
答案 0 :(得分:0)
通常在PYTHONHOME路径无效或未设置时发生 尝试:
set PYTHONHOME=C:\Python27