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

原创 2016年05月31日 15:52:25

方法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/

ELF格式文件详细分析

ELF(Executable and Linkable Format)即可执行连接文件格式,是一种比较复杂的文件格式,但其应用广泛...
  • xuehuafeiwu123
  • xuehuafeiwu123
  • 2017年06月12日 08:49
  • 629

详细贯穿Golang和Python的第一个程序,以及对应的二进制文件编译方法

Python和Golang都是相当不错的编程语言,都值得一窥,所以此处使用两者的第一个程序,将两者的特点进行代码注解详细介绍做记录,当然目前我们的项目上是全栈python,GoLang出于个人喜好自学...
  • zhouruifu2015
  • zhouruifu2015
  • 2017年05月12日 22:15
  • 480

python库大全

环境管理管理 Python 版本和环境的工具p:非常简单的交互式 python 版本管理工具。官网 pyenv:简单的 Python 版本管理工具。官网 Vex:可以在虚拟环境中执行命令。官网 ...
  • yincheng01
  • yincheng01
  • 2017年09月01日 02:14
  • 1509

elf静态链接实例

非我原创, 但因喜欢而重新整理!, 代码已重新校验!(1)创建文件创建文件common.cint val = 1; int func(void) { return (val+10); ...
  • hejinjing_tom_com
  • hejinjing_tom_com
  • 2017年06月01日 17:36
  • 285

Python 二进制、整数相互转化

整数转二进制: 1、采用%2的方式计算 2、采用python自带了方法 bin. 比如bin(10) 回返回字符串'0b1010' ,只留下‘0’,‘1’序列需要把‘0b’去掉. bin(number...
  • a1628864705
  • a1628864705
  • 2016年10月21日 16:04
  • 626

可执行文件(ELF)格式的理解

转载自:http://www.cnblogs.com/xmphoenix/archive/2011/10/23/2221879.html ELF(Executable and Linking F...
  • memray
  • memray
  • 2014年12月20日 02:39
  • 2276

python 资源大全

转载地址:https://my.oschina.net/u/2306127/blog/639345 Awesome Python Environment Management    环境管...
  • yang889999888
  • yang889999888
  • 2017年07月12日 17:09
  • 162

Python 资源大全

环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具。 pyenv – 简单的 Python 版本管理工具。 Vex – ...
  • huayucong
  • huayucong
  • 2016年11月30日 00:05
  • 1562

利用ubuntu将.cpp生成二进制的可执行文件,然后利用.bat(脚本)编写命令,将可执行文件在android机上运行

首先ubuntu上有混合编译器 脚本make.sh,其内容如下:(myvir是我的虚拟机的名字) /home/myvir/my_ndk_toolchain/bin/arm-linux-androide...
  • u014581740
  • u014581740
  • 2017年06月28日 16:41
  • 396

Python 位运算及二进制基础知识

来补点基础知识,这篇讲的是位运算 二进制实际上就是用10进制的数的每一位数字的2的幂数 来看例子: 然后再python的操作中,只要在数字前面加上0b的字符,就可以用二进制来表示十进制数了...
  • bestallen
  • bestallen
  • 2016年06月26日 16:59
  • 9574
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[python] 转换python脚本程序为二进制ELF
举报原因:
原因补充:

(最多只允许输入30个字)