python的程序的缺点是: 需要提供源码,如果不想让源码被第三方获得,可以将其打包成二进制文件的形式。
pyinstaller就可以完成这个要求。
vim testpy
直接用python程序调用,结果如下:
大写的-F表示生成单一文件。
运行结果:
生成的可执行文件在dist目录中 。
>
1、下载并安装py2exe,可下载最新版本。
2、编写安装脚本,比较简单,不过多解释,如下:
Screenshot_setuppy
#!/usr/bin/env python
# -- coding: utf-8 --
from distutilscore import setup
import py2exe
includes = ["encodings", "encodings"]
data_files = ['CameraDlldll']
options = {"py2exe":
{ "compressed": 1,
"optimize": 2,
"bundle_files": 1,
"includes": includes
}
}
setup(
version = "10",
description = "Screenshot Tool",
name = "Screenshot Tool",
options = options,
zipfile=None,
data_files = data_files,
console=[{"script": "Screenshotpy", "icon_resources": [(1, "Screenshotico")] }]
)
各参数含义见第5小节或执行python命令行下执行help(py2exe)查看。
3、打包程序:
a、将要找包的程序、文件和打包脚本放在同一目录下,如下:
E:\tmp\pyexe_tmp>tree /F
文件夹 PATH 列表
卷序列号码为 0007F240 101F:F68D
E:
CameraDlldll
screenshotico
Screenshotpy
screenshot_setuppy
没有子文件夹
E:\tmp\pyexe_tmp>
b、执行打包脚本:
E:\tmp\pyexe_tmp>python screenshot_setuppy py2exe
python screenshot_setuppy py2exe
running py2exe
creating E:\tmp\pyexe_tmp\build
creating E:\tmp\pyexe_tmp\build\bdistwin32
creating E:\tmp\pyexe_tmp\build\bdistwin32\winexe
creating E:\tmp\pyexe_tmp\build\bdistwin32\winexe\collect-26
creating E:\tmp\pyexe_tmp\build\bdistwin32\winexe\bundle-26
creating E:\tmp\pyexe_tmp\build\bdistwin32\winexe\temp
creating E:\tmp\pyexe_tmp\dist
searching for required modules
parsing results
finding dlls needed
create binaries
byte compile python files
writing byte-compilation script 'e:\tmp\tmp1ecbcwpy'
如果有main就是从main入口进入执行没有的话,我猜想是顺序执行因为exe其实也就是把你的py文件需要用的包和环境打包,然后再其他设备上,即使没有安装python的也可以正常运行,其运行效果和你在本地调试运行应没有分别
return 应该放在一个函数里面的,
将python打包成exe的程序有很多,比如py2exe、PyInstaller等等,但是到目前为止,它们对python31支持的都不好,所以这里我要介绍一下cx_freeze 422,它还能支持跨平台,可以在windows和linux运行。
cx_freeze的下载网址为 >
以上就是关于centos下pyinstaller打包python程序全部的内容,包括:centos下pyinstaller打包python程序、【python】打包成MAC APP、如何将一整个python工程打包等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)