关闭

[python] 转换python脚本程序为二进制ELF

标签: python二进制
1005人阅读 评论(0) 收藏 举报
分类:

方法1:

freeze.py 来自python源码树.


安装pythonbrew,可安装定制化的独立python环境(略)

python trunk/Tools/freeze/freeze.py ./pkgdep.py

之后make即可。

问题:如果python脚本或依赖链的脚本中需要从.so中import,会出现问题。无数坑,放弃。

具体可参看http://svn.python.org/projects/python/branches/pep-0384/Tools/freeze/README

https://wiki.python.org/moin/Freeze(搜static)


方法2:

pyinstaller

- 安装pythonbrew

- pythonbrew install -v -C --with-dbmliborder=gdbm:bdb  -C --enable-unicode=ucs4 --universal ~/workspace/python/trunk

http://www.thecodingforums.com/threads/got-undefined-symbol-_pyunicodeucs2_asdefaultencodedstring-onopensuse-11-1.699499/

- pythonbrew switch trunk

- 将依赖模块准备好:

cd ~/.pythonbrew/pythons/Python-trunk/lib/python2.7/site-packages

cp -a /usr/lib64/python2.7/site-packages/rpm .
cp -a /usr/lib/python2.7/site-packages/urlgrabber .
cp /usr/lib64/python2.7/lib-dynload/bz2.so ../lib-dynload/

或从对应模块的源码安装模块:

python setup.py install


easy_install pip==1.2.1

pip install pyinstaller


pyinstaller -F ./helloworld.py

完工。


Reference:

http://docs.python-guide.org/en/latest/shipping/freezing/

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:18323次
    • 积分:539
    • 等级:
    • 排名:千里之外
    • 原创:35篇
    • 转载:14篇
    • 译文:0篇
    • 评论:0条
    文章分类