在arm上搭建flask运行环境

来源:互联网 发布:黑客帝国矩阵革命好帅 编辑:程序博客网 时间:2024/04/30 11:59

flask是一个简单的实用的web服务,由于其比较小巧,对于一些简单需求的服务是比较方便的,如restful api。

由于flask是一个在Python上运行的库,所以想要运行flask,那么一个Python库是必不可少的,那么就需要交叉编译一个Python库,可以参考 交叉编译python 2.7.3 for arm。

然后将flask的库拷到python的lib/python2.7.3/site-package目录下,就可以了,由于flask还需要依赖几个库,要将这些库都拷贝到lib/python2.7.3/site-package目录下。
他们有click, flask, itsdangerous, jinjia2, markupsafe, werkzeug
都在mitsuhiko项目中。

然后将这些文件copy到arm的Linux上,运行flask程序会缺少zlib和ssl。Python对于第三方的库,如果需要交叉编译,需要先将第三方的库进行交叉编译,可以参考交叉编译zlib和openssl for arm,将这两个库进行交叉编译,然后记住这两个库install的位置。
这时需要重新编译Python库。
具体过程还是如交叉编译python 2.7.3 for arm, 只不过在两部分的中间,需要修改Python-2.7.3/Modules/Setup.dist.

SSL=/usr/local/ssl_ssl _ssl.c \        -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \        -L$(SSL)/lib -lssl -lcrypto
zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz

将这两个部分去掉注释,如果ssl和zlib安装的位置和交叉编译zlib和openssl for arm一样,那么是不需要做其他修改的,应该就可以将这两个库编译进去了。如果修改了的话,那么在上面两端代码中,也需要做相应的修改,刚Python找到相应的库。

这样得到的Python库大小在55M左右,如果需要对Python库进行缩减,下面提供一个比较简洁的办法,但是这个得到的Python库只会支持特定的程序。

基本的编译方法还是和交叉编译python 2.7.3 for arm一样,在这里第一步和第二步中间修改Python-2.7.3/Modules/Setup.dist文件的时候,就需要做比较多的修改,具体文件Setup.dist
然后依然会得到55M左右的Python库,接下来就需要删除一些不需要的文件,share目录可以删掉,lib下只需保留python2.7.3即可,在python2.7.3中,lib-dynload下的.so文件都可以删除,config文件下的libpython2.7.a 可以删除,最后将所要运行的程序完全测试一遍,删除lib下的所以.py文件即可,这样会使python大小变的很小,并且可以满足当前程序的需求。

0 0
原创粉丝点击