pyinstaller spec文件详解
先上spec文件配置好后的全部代码。后面详细讲解!
官方详细文档请参阅链接
# -*- mode: python ; coding: utf-8 -*-block_cipher = Nonea = Analysis(['hello.py'],pathex=['D:\\Company\\project\\untitled','D:\\Company'],binaries=[( '/usr/lib/libiodbc.2.dylib', '.' )],datas=[('image/*.png','data/image'),('pdf/*.pdf','data/pdf')],hiddenimports=['sklearn.utils._typedefs'],hookspath=[],runtime_hooks=[],excludes=['PyQt5'],win_no_prefer_redirects=False,win_private_assemblies=False,cipher=block_cipher,noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,cipher=block_cipher)
exe = EXE(pyz,a.scripts,a.binaries,a.zipfiles,a.datas,[],name='hello',debug=False,bootloader_ignore_signals=False,strip=False,upx=True,upx_exclude=[],runtime_tmpdir=None,console=False )
项目路径
D:\Company为主目录,下面有2个文件夹project和util
project目录下放了项目文件untitled
util目录下放自己写的库/模板
0. a里面的script
['hello.py']
main文件入口,或者你执行文件的时候要执行多少个python文件,那就写几个,比如pyinstaller hello.py hello2.py,会依次去执行
1. a里面的pathex
pathex=['D:\\Company\\project\\untitled','D:\\Company'],
意思是项目需要从什么地方导入自定义库
# hello.py文件
from mypath.util import module1 # 从D:\\Company\\project\\untitled找到mypath文件夹下面的util下面的module1
from util.module2 import * # 从D:\\Company目录下的util找到module2
2. a里面的datas
项目需要用到什么数据,比如图片,视频等。里面格式为tuple,第一个参数是文件路径,第二个是打包后所在的路径。
下面的代码意思就是,把image下面的所有以png结尾的文件打包到exe所在目录下的data/image目录下。把pdf目录下的test.pdf文件打包到exe所在目录的data/pdf目录下。
datas=[('image/*.png','data/image'), ('pdf/test.pdf','data/pdf')
],
3. a里面的hiddenimports
hiddenimports=['sklearn.utils._typedefs'
],
官方解释
Normally PyInstaller learns about .so and .dll libraries by analyzing the imported modules. Sometimes it is not clear that a module is imported; in that case you use a --hidden-import command option. But even that might not find all dependencies.
假如打包后打开exe显示module not found,就要把该库添加到hiddenimports里面了。
4. a里面的binaries
动态库
binaries=[( '/usr/lib/libiodbc.2.dylib', '.' )],
5. a里面的excludes
excludes=['PyQt5']
假如你用的python有很多库,但是你不需要用到某个,那么就把它添加到里面去,比如很多人没有用到PyQt5, pandas
pyinstaller spec文件详解相关推荐
- 【收藏】RPM包制作和spec文件详解
1.How to create an RPM package/zh-cn https://fedoraproject.org/wiki/How_to_create_an_RPM_package/zh- ...
- RPM包制作之Spec文件详解
看这篇文章的人基本都有一个想法,就是:"劳资不想用YUM的安装!不是版本太低就是文件分布太野路子",此时我们需要自己订制软件包的需求,我们会把一些源码包按照我们的需求来做成rpm包 ...
- linux rqm包制作 spec文件详解
看这篇文章的人基本都有一个想法,就是:"不想用YUM的安装!不是版本太低就是文件分布太野路子",此时我们需要自己订制软件包的需求,我们会把一些源码包按照我们的需求来做成rpm包,其 ...
- linux spec 脚本,RPM包制作之Spec文件详解
看这篇文章的人基本都有一个想法,就是:"劳资不想用YUM的安装!不是版本太低就是文件分布太野路子",此时我们需要自己订制软件包的需求,我们会把一些源码包按照我们的需求来做成rpm包 ...
- Linux中/proc目录下文件详解
Linux中/proc目录下文件详解(一) 声明:可以自由转载本文,但请务必保留本文的完整性. 作者:张子坚 email:zhangzijian@163.com 说明:本文所涉及示例均在fedora ...
- Mybatis复习笔记3:映射文件详解
映射文件详解 参数处理(#和$的区别) #{}:可以获取map中的值或者实体对象属性的值: ${}:可以获取map中的值或者实体对象属性的值: select * from person where i ...
- Android - Manifest 文件 详解
Manifest 文件 详解 本文地址: http://blog.csdn.net/caroline_wendy/article/details/20899281 Manifest可以定义应用程序及其 ...
- javaweb web.xml文件详解
web.xml文件详解 前言:一般的web工程中都会用到web.xml,web.xml主要用来配置,可以方便的开发web工程.web.xml主要用来配置Filter.Listener.Servlet等 ...
- oracle控制文件都一样么,Oracle控制文件详解
一.Oracle控制文件 为二进制文件,初始化大小由CREATEDATABASE指定,可以使用RMAN备份 记录了当前数据库的结构信息,同时也包含数据文件及日志文件的信息以及相关的状态,归档信息等等 ...
- linux /proc目录文件详解
Linux中/proc目录下文件详解(一) /proc文件系统下的多种文件提供的系统信息不是针对某个特定进程的,而是能够在整个系统范围的上下文中使用.可以使用的文件随系统配置的变化而变化.命令proc ...
最新文章
- javaScript的DOM(一)
- 遗传算法详解(GA)
- VS清除打开项目时的TFS版本控制提示
- 类的赋值运算符的重载函数
- STM32F103中文参考手册之时钟树
- 9.6分神作又出续集,这是成年人最不敢直视的现实
- (4)ISE14.7 ChipScope使用流程(FPGA不积跬步101)
- Docker修改容器系统时间命令组
- Git_自定义Git
- Windows 7(server 2008) 下直接硬盘安装 Ubuntu 10.04成为双系统的方法
- 数据库实时同步技术解决方案
- K60学习笔记一:PORT端口
- Phase2 Day14 Collections RedBlackTree
- qlistview 自定义控件,是否可以在QListView中添加自定义窗口小部件?
- Python面向对象加强1.关于经典类、新式类和property详解
- 短信接入程序,短信接入平台,彩信接入程序,移动短信接入软件,移动彩信接入平台模块
- 堆栈c语言 矩形填色,堆栈涂色官方版下载|堆栈涂色安卓版v0.1下载 - 一游网手机游戏...
- 2022-06-29 AndroidR 获取接近传感器Proximity Sensor的信号,休眠和唤醒。
- Java是什么?Java的特点有哪些?
- 交叉线、直通线、反转线的区别与应用