文章目录

pyinstaller介绍

pyinstaller是一个python的第三方库,它能够在Windows、Linux、

if getattr(sys, ‘frozen’, False):
# pyinstaller打开
BASE_DIR = os.path.dirname(sys.executable)
else:
# py文件路径
BASE_DIR = os.path.dirname(os.path.abspath(file))

print(“----环境使用xxx系统----”)

with open(os.path.join(BASE_DIR, “account.txt”), mode=‘r’, encoding=‘utf-8’) as f:
data = f.read().strip()
print(data)

time.sleep(5)

1.3 关于模块

动态加载不同目录
在这里插入图片描述

但是,如果遇到那种动态导入模块的代码时,他是无法找到关联的包。

import time
import importlib

print(“----环境使用xxx系统----”)

# from utils import card
# card.get_number()

card = importlib.import_module(“utils.card”)
v1 = card.get_number()
print(v1)

time.sleep(5)

此时我们打包时,就不再加-F 或 -D 而是直接执行.spec文件
在这里插入图片描述

案例,定义一目录,下不同py文件下有同样函数名称
在这里插入图片描述

在这里插入图片描述

import importlib
name = input('请输入模块名称:')
path_string = f'utils.{name}'

#动态导入
md = importlib.import_module(path_string)
res = md.func(11,22)
print(res)

在这里插入图片描述

在这里插入图片描述

此时如果再按之前方式打包,程序运行时就会找不到模块
在这里插入图片描述

在这里插入图片描述

解决这样的问题,就要借助.spec里面有个隐式导入的配置
在这里插入图片描述

我们把要导入的模块路径放在这个列表里面,再次打包时,我们不能再通过py文件来运行了,否则会重新生成这个.spec文件。而是基于这个.spec文件进行打包
在这里插入图片描述

我们把其他打包时生成的文件删掉,重新打包

pyinstaller  pyinstalltext.spec 

 
 
  • 1

在这里插入图片描述

此时再执行就不报错了
在这里插入图片描述

打包成单文件的可执行文件,把其他依赖的utils目录下的文件删了,也可以正常执行
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

也可指定生成程序的名称
在这里插入图片描述

在这里插入图片描述

生成的可执行程序和.spec文件都是我们指定的名称
在这里插入图片描述

1.4 程序图标

在打包时,加入 -i 参数可以展示图标(内部需要依赖pillow模块将图片转换为icon)

pip install pillow

 
 

打带图标的包

 pyinstaller -F pyinstalltext.py -i lingge.jpg

 
 

在这里插入图片描述

在这里插入图片描述

1.5 PyInstaller 支持的常用选项

-h,–help 查看该模块的帮助信息
-F,-onefile 产生单个的可执行文件
-D,–onedir 产生一个目录(包含多个文件)作为可执行程序
-a,–ascii 不包含 Unicode 字符集支持
-d,–debug 产生 debug 版本的可执行文件
-w,–windowed,–noconsolc 指定程序运行时不显示命令行窗口(仅对 Windows 有效)
-c,–nowindowed,–console 指定使用命令行窗口运行程序(仅对 Windows 有效)
-o DIR,–out=DIR 指定 spec 文件的生成目录。如果没有指定,则默认使用当前目录来生成 spec 文件
-p DIR,–path=DIR 设置 Python 导入模块的路径(和设置 PYTHONPATH 环境变量的作用相似)。也可使用路径分隔符(Windows 使用分号,Linux 使用冒号)来分隔多个路径
-n NAME,–name=NAME 指定项目(产生的 spec)名字。如果省略该选项,那么第一个脚本的主文件名将作为 spec 的名字

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐