使用PyInstaller打包Python应用时,引用模块是否自动嵌入.exe文件?
PyInstaller打包时你的模块是否会自动被包含?
好问题!我来逐个帮你梳理这些模块的打包情况:
tkinter系列模块:
import tkinter as tk、from tkinter.colorchooser import *、from tkinter import filedialog都属于Python标准库范畴。PyInstaller默认会扫描代码里的所有直接引用,自动打包所需的标准库模块,所以这几个肯定会被包含进最终的.exe文件里,不用额外操作。PIL(Pillow)模块:
from PIL import ImageGrab是第三方库,不过PyInstaller的静态分析机制能轻松识别到这类第三方依赖,正常情况下会自动把Pillow相关的必要文件打包进去。除非你用到了Pillow非常冷门的插件或功能,否则完全不用手动干预,ImageGrab这类常用功能肯定能被正确打包。
如果之后打包后运行时遇到模块缺失的报错,你可以试试用pyinstaller --hidden-import 缺失模块名的命令强制添加,但就你列出的这些模块来说,大概率不会碰到这种情况。
内容的提问来源于stack exchange,提问作者TheOne




