https://gitee.com/feboreigns/matplotlibcpp
这篇文章需要一些cmake基础,python基础,visualstudio基础
准备环境
注意如果在VS平台使用必须要手动下载python,不能使用conda里面的,比如3.8版本,因为conda里面没有python38_d.dll,只有python38.dll。怎么下载python就不解释了,注意安装的时候把所有的都勾上,尤其下面这个:
一般能自动添加环境变量,然后直接使用pip安装matplotlib。
PS C:\Users\aa\Desktop> python -V
Python 3.8.10
pip install matplotlib
我把我弄好的环境放在csdn上,但要自己配置环境变量
开始
1 把代码克隆下来。
2 使用vscode或者什么打开文件夹
3 cmake常规操作:新建一个build文件夹,cd进去,然后cmake … (注意我的cmake默认就是VS)
4 可能生成失败了,报一个错误:
PYTHONHOME = (not set)
PYTHONPATH = (not set)
........................................
ModuleNotFoundError: No module named 'encodings'
设置环境变量就行了
5 然后去build打开VS的sln,都编译一遍,release和debug,编译成功。
6 把python路径扔到环境变量path中(如果有就忽略),点击exe运行。
debug模式下运行不成功,出现下面的错误:
No module named 'numpy.core._multiarray_umath'
......................................
只需要在debug下加入附加依赖项E:\python3.8.10\libs\python38.lib,然后重新编译。
如果报错找不到dll那么就去python路径复制dll到运行目录下
7.如果你不想把这个版本的python加入到环境变量中,那么就取消我的注释,手动指定路径
set(CMAKE_PREFIX_PATH "E:/python3.8.10" ${CMAKE_PREFIX_PATH})
set(Python3_FIND_STRATEGY LOCATION) # 指定查找策略
set(Python3_ROOT_DIR "E:/python3.8.10") # 设置根路径
set(Python3_FIND_FRAMEWORK NEVER) # 禁用 Framework 模式
8. 如果你想在其他的项目中使用matplotlibcpp
那么在包含目录加入:
E:/python3.8.10/include
E:/python3.8.10/Lib/site-packages/numpy/core/include
加入依赖项:
E:\python3.8.10\libs\python38.lib
debug下加入额外依赖项E:\python3.8.10\libs\python38_d.lib
就能正常使用matplotlibcpp.h了