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 吧.