Py之Pyinstaller:Python库之Pyinstaller简介、使用方法、安装详细攻略

简介: Py之Pyinstaller:Python库之Pyinstaller简介、使用方法、安装详细攻略

Pyinstaller简介


       PyInstaller是一个十分有用的第三方库,它能够在Windows、Linux、 Mac OS X 等操作系统下将 Python 源文件打包,通过对源文件打包, Python 程序可以在没有安装 Python 的环境中运行,也可以作为一个 独立文件方便传递和管理。

       PyInstaller是一个程序,冻结(包)的Python程序为独立的可执行文件,在Windows,Linux,Mac OS X,FreeBSD,Solaris和AIX。其主要优点是在类似的工具,PyInstaller的作品与Python 2.7和3.3-3.6,建立小的可执行文件由于透明压缩,它是完全跨平台的,使用的操作系统支持加载动态库,从而保证完全兼容。对pyinstaller的主要目的是与第三方软件兼容的盒子。这意味着,与PyInstaller,所有需要的技巧使外部包已经集成在pyinstaller本身也无需用户干预。你不需要寻找技巧在维基应用自定义修改你的文件或您的安装脚本。作为一个例子,图书馆像PyQt,Django或matplotlib的完全支持,而不必处理插件或外部数据文件手动。检查我们支持的包的兼容性列表以获得详细信息。欢迎加入我们的行列!请查看我们的路线图检查我们的计划。同时使用报告表示欢迎:让我们知道PyInstaller对你的作品有什么问题,或者你在使用它的发现。检查我们的项目使用pyinstaller列表。


Pyinstaller安装


pip install pyinstaller

image.png



20210805更新


pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller

pip install --upgrade pyinstaller

image.png



Pyinstaller使用方法


1、使用方法


切记:跨平台或电脑,解压后的exe文件不能有中文路径,有中文路径会打不开exe文件

T1、打包为多个文件pyinstaller Search.py

T2、打包为单个文件pyinstaller -F Search.py,

         例如pyinstaller -F Eric20180524py_gui_Iot.py --icon=Jasonniu.ico



2、参数含义  


-F 表示生成单个可执行文件,-F指令,注意指令区分大小写。这里是大写。使用-F指令可以把应用打包成一个独立的exe文件,否则是一个带各种dll和依赖文件的文件夹

-w 表示去掉控制台窗口,这在GUI界面时非常有用。不过如果是命令行程序的话那就把这个选项删除吧! -w指令,直接发布的exe应用带命令行调试窗口,在指令内加入-w命令可以屏蔽,例如pyinstaller -F -w Search.py

-p 表示你自己自定义需要加载的类路径,一般情况下用不到 ,-p指令,这个指令后面可以增加pyinstaller搜索模块的路径。因为应用打包涉及的模块很多。这里可以自己添加路径。不过经过笔者测试,site-packages目录下都是可以被识别的,不需要再手动添加。-p参数是添加的pyinstaller打包程序时的扫描路径,pyinstaller的扫描路径有可能不完整,造成打包后的可执行文件运行时出现“找不到指定的模块”的错误。

-i 表示可执行文件的图标,例如:pyinstaller -F --icon=my.ico xxx.py。

或者pyinstaller -F -w -i F:\\File_Python\\Jasonniu.ico Search.py

      执行Pyinstaller命令后,在当前目录下生成两个文件夹build和dist,一个name.spec文件  在build文件夹下有一个warnname.txt文件,这里面会有关于缺少模块的日志  在dist/文件夹下有可执行文件name.exe

(1)、pyinstaller打包多个py文件和去除cmd黑框:pyinstaller.exe -F 路径\文件名.py空格路径\文件名.py空格--noconsole

pyinstaller name.py --noconsole

(2)、隐藏模块:pyinstaller -F CV_Object.py --icon=Jasonniu.ico --hidden-import=yolo,PyQt5.sip,h5py

(3)、打开生成的CV_Object.spec文件,直接拖入dos内即可(或pyinstaller "F:\Program Files\Python\Python36\Lib\site-packages\keras_*****\keras-*****\CV_Object.spec"),以后修改CV_Object.spec文件的参数即可!!


# -*- mode: python -*-

block_cipher = None

a = Analysis(['CV_Object.py'],

            pathex=['F:\\Program Files\\Python\\Python36\\Lib\\site-packages\\keras_*****\\keras-*****'],

            binaries=[],

            datas=[],

            hiddenimports=['*****','model'],

            hookspath=[],

            runtime_hooks=[],

            excludes=[],

            win_no_prefer_redirects=False,

            win_private_assemblies=False,

            cipher=block_cipher)

pyz = PYZ(a.pure, a.zipped_data,

            cipher=block_cipher)

exe = EXE(pyz,

         a.scripts,

         a.binaries,

         a.zipfiles,

         a.datas,

         name='CV_Object',

         debug=False,

         strip=False,

         upx=True,

         runtime_tmpdir=None,

         console=True , icon='Jasonniu.ico')



大功告成!


相关文章
Python
13 0
|
1天前
|
JSON 数据格式 索引
python 又一个点运算符操作的字典库:Munch
python 又一个点运算符操作的字典库:Munch
9 0
|
1天前
|
数据挖掘 数据处理 索引
如何使用Python的Pandas库进行数据筛选和过滤?
Pandas是Python数据分析的核心库,提供DataFrame数据结构。基本步骤包括导入库、创建DataFrame及进行数据筛选。示例代码展示了如何通过布尔索引、`query()`和`loc[]`方法筛选`Age`大于19的记录。
9 0
|
2天前
|
数据处理 Python
如何使用Python的Pandas库进行数据排序和排名
【4月更文挑战第22天】Pandas Python库提供数据排序和排名功能。使用`sort_values()`按列进行升序或降序排序,如`df.sort_values(by='A', ascending=False)`。`rank()`函数用于计算排名,如`df['A'].rank(ascending=False)`。多列操作可传入列名列表,如`df.sort_values(by=['A', 'B'], ascending=[True, False])`和分别对'A'、'B'列排名。
13 2
|
3天前
|
算法 Python
请解释Python中的关联规则挖掘以及如何使用Sklearn库实现它。
使用Python的mlxtend库,可以通过Apriori算法进行关联规则挖掘。首先导入TransactionEncoder和apriori等模块,然后准备数据集(如购买行为列表)。对数据集编码并转换后,应用Apriori算法找到频繁项集(设置最小支持度)。最后,生成关联规则并计算置信度(设定最小置信度阈值)。通过调整这些参数可以优化结果。
25 9
|
3天前
|
Python
如何使用Python的Pandas库进行数据缺失值处理?
Pandas在Python中提供多种处理缺失值的方法:1) 使用`isnull()`检查;2) `dropna()`删除含缺失值的行或列;3) `fillna()`用常数、前后值填充;4) `interpolate()`进行插值填充。根据需求选择合适的方法处理数据缺失。
34 9
|
3天前
|
索引 Python
如何在Python中使用Pandas库进行季节性调整?
在Python中使用Pandas和Statsmodels进行季节性调整的步骤包括:导入pandas和seasonal_decompose模块,准备时间序列DataFrame,调用`seasonal_decompose()`函数分解数据为趋势、季节性和残差,可选地绘制图表分析,以及根据需求去除季节性影响(如将原始数据减去季节性成分)。这是对时间序列数据进行季节性分析的基础流程。
19 2
|
6天前
|
安全 数据处理 开发者
《Python 简易速速上手小册》第7章:高级 Python 编程(2024 最新版)
《Python 简易速速上手小册》第7章:高级 Python 编程(2024 最新版)
19 1
|
6天前
|
人工智能 数据挖掘 程序员
《Python 简易速速上手小册》第1章:Python 编程入门(2024 最新版)
《Python 简易速速上手小册》第1章:Python 编程入门(2024 最新版)
35 0
|
7天前
|
API Python
Python模块化编程:面试题深度解析
【4月更文挑战第14天】了解Python模块化编程对于构建大型项目至关重要,它涉及代码组织、复用和维护。本文深入探讨了模块、包、导入机制、命名空间和作用域等基础概念,并列举了面试中常见的模块导入混乱、不适当星号导入等问题,强调了避免循环依赖、合理使用`__init__.py`以及理解模块作用域的重要性。掌握这些知识将有助于在面试中自信应对模块化编程的相关挑战。
20 0

热门文章

最新文章