打包Python独立运行时环境,python打包环境
这一次,在ubuntu上开发的python代码需要打包成可执行程序,交付给甲方.因为源代码不能直接交给甲方,所以想办法把python开发的源代码打包成可执行程序。注意是打包在ubuntu上的可执行程序,不是打包在window上的可执行程序,而是打包在windows上的可执行程序。
这次用ubuntu打包python源代码的方法有点类似于用window。大致流程如下。
1.在ubuntu上安装easy_install
# sudo apt-getinstallpython-设置工具python-开发构建-基本
2.下载并安装pyinstaller
在网站上下载pyisntaller包。地址:http://www.pyinstaller.org/,下载相应的tar包。
假设下载的软件包是pyinstaller_2.1.tar.gz
然后,使用命令解压软件包。#tar -cfpyinstaller_2.1.tar.gz
进入解压目录:#cdpyinstaller_2.1
最后,运行命令安装py installer:# sudopyhonsetup . py install。
如果中间没有错误,pyinstaller已经安装好了。
3.打包python项目源代码
python源代码的结构目录如下。
共16个drwxrwxr-x2 jelly jelly 4096 mar 1415336013 configdrwxrwxr-x2 jelly jelly 4096 mar 141536013 database-rw-r-1 jelly 3333:13在r1415336013manager.py图中可以看到两个文件夹,两个py源文件和mian.py为主控。
然后,用命令打包源代码。
# py安装程序-F main.py
然后,将生成如下所示的目录
合计28 drwxrwxr-x3 Jelly Jelly 4096 mar 1415336018 builddrwxrwxr-x2 Jelly Jelly 4096 mar 1415336013 configdrwxrwxr-x2 Jelly jely 4096 336y Jelly 4096 mar 1415336018 Dist-RW-RW-1 Jelly Jelly 2 mar 1415336013 main . py-RW-RW15:18/main命令。
但是,这个时候,就可以看出有问题了。这种打包方法只打包当前目录中的所有py文件,而不打包config和database文件夹,因此此时可执行文件没有完全打包。这时候我该怎么办?下一个。
4.重新包装
重新打包意味着修改它的main.spec文件,然后使用它进行打包。操作过程如下
打开main.spec文件,并在修改它之前执行以下操作
#-*-模式:python;编码:utf-8-block _ cipher=nonea=analysis([ main . py ],pathex=[/home/jelly/test],bing win _ no _ prefere _ redirects=False,win_private_assemblies=False,cinse a.zipped_data,cipher=block _ blies a.datas,[()boot loader _ ignore _ signals=False,strip=False,upx=True,runtime_tmpdir=None,console=
#-*-模式:python;编码:utf-8-block _ cipher=nonea=analysis([ main . py ],pathex=[/home/jelly/test],bing win _ no _ prefere _ redirects=False,win_private_assemblies=False,cinse no archive=False(dict _ database)prefix= database )a . datas=dict _ databasedict _ config=tree((/home/jelly/test/config),prefix= contig a.zipped_data,cipher=block _ cipher(exe=exe)pyz
pathex=[/home/jelly/test],
因为这个路径是前面的工具自己生成的,所以我们添加的两个目录的绝对路径也是一致的。这个改造完成以来一直很好。
5.编译并生成
修改安装步骤4后,运行命令
#pyinstaller mian.spec
的打包程序现在包含两个次级文件夹。
其实最后在window上打包生成可执行文件的过程是一样的,都是用pyinstaller打包,py installer也是用工具。
非常感谢
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。