2、编写安装脚本,比较简单,不过多解释,如下:
Screenshot_setup.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from distutils.core import setup
import py2exe
includes = ["encodings", "encodings.*"]
data_files = ['CameraDll.dll']
options = {"py2exe"陪销肆:
{ "compressed": 1,
"optimize": 2,
"bundle_files": 1,
"includes": includes
}
}
setup(
version = "1.0",
description = "Screenshot Tool",
name = "Screenshot Tool",
options = options,
zipfile=None,
data_files = data_files,
console=[{"script": "Screenshot.py", "icon_resources": [(1, "Screenshot.ico")] }]
)
各参数含义见第5小节或执行python命令行下执行help(py2exe)查看。
3、打包程序:斗渗
a、将要找包的程序、文件和打包脚本放在同一目录下,如下:
E:\tmp\pyexe_tmp>tree /F
文件夹 PATH 列表
卷序列号码为 0007F240 101F:F68D
E:.
CameraDll.dll
screenshot.ico
Screenshot.py
screenshot_setup.py
没有子文件夹
E:\tmp\pyexe_tmp>
b、执行打包脚本:
E:\tmp\pyexe_tmp>python screenshot_setup.py py2exe
python screenshot_setup.py py2exe
running py2exe
creating E:\tmp\pyexe_tmp\build
creating E:\tmp\pyexe_tmp\build\bdist.win32
creating E:\tmp\pyexe_tmp\build\bdist.win32\winexe
creating E:\tmp\pyexe_tmp\build\bdist.win32\winexe\collect-2.6
creating E:\tmp\芦轿pyexe_tmp\build\bdist.win32\winexe\bundle-2.6
creating E:\tmp\pyexe_tmp\build\bdist.win32\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\tmp1ecbcw.py'
PyInstaller是一个用来将Python程序打包成独立可执行软件的工具,支持 Windows、Linux 和 Mac OS X。生成的可执行软件在没有Python的环境中可以直接运行,方便软件分发,进一步降低使用成本,提升使用效率。
下面演示如何使用 PyInstaller 将程序打包成Windows下的exe软件。
使用pip的方式进行安装,这样可以自动安装其他依赖库。
如果pip还未安装,请参考我的另一篇文章《 Python pip包管理工具 》
在cmd命令行控制台或者VS Code内置的终端输入命令行生成应用,首先将当前路径切换到Python程序所在的路径(如下示例的SubOcr.py文件在python文件夹下的SubOcr文件夹内),然后输入生成应用的命令。
命令执行成功后在 I:\work\python\SubOcr\dist 文件夹下生成了SubOcr文件夹,里面包含了SubOcr.exe文件。整个SubOcr文件夹就是一个绿色软茄老件,随便移动到任何位置都可运行。
实际上在用pyinstaller命令时会在Python程序的所在路径生成一个后缀为spec的同名文件,然后根据此文件的配置生成应用,这就是PyInstaller的原理。这样做的好处是spec保存了生成应用的配置,每次重新生成应用时可以省略指定参数,尤其是指定了其他的资源、程序库时。我们可以通过以下命令先生成spec文件。
pyi-makespec的命令参数跟pyinstaller的相同,在生成spec文件后可以对其部分选项进行编辑(可以用VS Code或自带的记事本编辑颤中升),添加更多参数,然后再用pyinstaller命令生成应用。
spec文件的主要选项:
上面示例的SubOcr用到了opencc和opencv-python,其中opencc下的数据文件和opencv-python下的dll文件在生成应用时不会自动导入(缺少这些文件应用无法正常使用),因此需要在spec文件中指定路径。对spec文件的修改如下:
以上便是PyInstaller打包Python程序的全过程,如果在此过程中遇到问题,可以在评论区留言,定当知无不言,言无不培枯尽。
步骤:1、使用此文程序编译激唤首python源程序为pyd
链接: https://www.jianshu.com/p/4465cf9283b6
2、编写入口py文件,调用pyd模块
注意点:
1、由于pyinstaller不会导入pyd程序依赖包,所以需要将pyd程序依赖包在入口py文件中导入一次,避免打包exe时pyd无法使用
2、打包exe后,路径有所变化,pyd中路径需使用绝对明数路径
3、pyd文件不要写入口调用,if main等,在入口py文件中导包及调用相关函数
优点:脱离python环境,包依赖
缺点:文件较大
步骤:
1、将入口py文件打包为exe可执行程序,会自动导入pyd文件并进行封装
注意点:
1、打包exe后,cmd下运行程序,看是否有错误输出,按提示解决相应链岩问题即可
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)