windows下matplotlib编译安装备忘

时间:2023-03-09 05:45:20
windows下matplotlib编译安装备忘

windows下,codeblocks,mingw安装matplotlib.

python下一些源码的编译安装,备忘.

matplotlib官网编译好的版本只支持到3.3.我不慎刚下了python3.5.强迫症发作,只好编译了.

1 下载ipython.

2 这个东西也要编译.因为我没装任何版本的vs,只装了个codeblocks自带mingw32.去到python目录下Lib\distutils,自建一个distutils.cfg文件,里面写上:

[build]
compiler=mingw32

这样当python编译时将会使用mingw32.

3 ipython解压后,目录下就有setup.py.命令行敲入:

setup.py build

坐等即可。编译时遇到个错误,在\build\lib\IPython\utils\tests\test_text.py中遇到个错误,提示parse error docstring,目测是个字符串里的代码解析。我python也忘的七七八八了,猜测可能是缩进,因为进去看时这样:

    cln = """\
>>> def f(x):
... return x+1
...
>>> zz = f(2.5)"""

把字符串里的缩进变为跟cln的上几句字符串一样(8个空格).通过了

4 解压matplotlab.

5 坑爹的运行setup.py后发现缺少ft2build.h,总之我需要下载编译安装freetype2.

6 然后你需要下载libpng,编译安装.

7 还没完,你还需要下载zlib,编译安装.

8 以上你下载好的3个库,在setup.py里并没有配置好.基本上你要干的事是让setup.py找到这3个库的头文件和lib.以下是找出的办法:

1> 打开matplotlib目录下的setupext.py.

 2> 找到basedir_map这个变量的定义处,大概在150行.添加你这3个库的头文件目录.注意freetype2会自动连接类似freetype2的后缀.而libpng却没有,很坑.连接的后缀是在default_include_dirs变量里设置.

3> zlib无须考虑头文件.在default_libraries变量里设置lib文件.不要用它默认的'z'.我说什么人会去改动第三方库的库名啊?而且用这么短的名字摸不着头脑简直让我暴跳如雷.

4> 这几个文件的查找目录之一就是python目录下的include和lib.所以你的这3个库的文件最好也放在这里.

9 以上就可以build成功了.之后就setup.py install 吧.