本节介绍PyInstaller的其他一些基础命令,有些很常用,另一些知道下就好。

1. -h

该命令可以显示PyInstaller的帮助信息,使用后读者可以看到所有PyInstaller命令的用法和解释:


pyinstaller 指定python pyinstaller 命令_pyinstaller用法


2. -v

使用该命令可以查看当前所使用的PyInstaller的版本:


pyinstaller 指定python pyinstaller 命令_缓存_02


3. -D

即文件夹模式打包,加与不加没有影响。

4. -n

使用该命令可以修改包含可执行文件的文件夹名称、可执行文件的名称以及spec文件的名称:


pyinstaller 指定python pyinstaller 命令_临时文件_03


pyinstaller 指定python pyinstaller 命令_pyinstaller 命令_04


pyinstaller 指定python pyinstaller 命令_缓存_05


pyinstaller 指定python pyinstaller 命令_可执行文件_06


注:如果某个命令后面可以跟参数,我们可以在命令和参数之间加上等号,这样更加清晰,例如:
pyinstaller -n=good belle.py
或者带上引号
pyinstaller -n="good" belle.py

5. -y

当打包完毕后,我们可能会想修改下源码然后再次重新打包,那么第二次重新打包时PyInstaller会询问是否要移除之前已经生成的文件。


pyinstaller 指定python pyinstaller 命令_可执行文件_07


如果输入y,则删除并生成新文件;输入n则停止打包。


pyinstaller 指定python pyinstaller 命令_缓存_08


pyinstaller 指定python pyinstaller 命令_缓存_09


但如果在第二次打包时加上-y命令的话(也就是不需要用户确认),PyInstaller就会直接删除之前的文件(夹)然后打包生成新文件(夹)。


pyinstaller 指定python pyinstaller 命令_pyinstaller用法_10


6. --distpath

使用该命令可以指定dist文件夹中可执行文件(及依赖)的生成路径,比方说笔者让dist文件夹中的内容在桌面上生成:


pyinstaller 指定python pyinstaller 命令_缓存_11


可以发现项目路径下没有dist文件夹了,而桌面上出现了打包好文件夹,其中是可执行文件及其依赖(单文件模式打包的话则桌面上就是一个可执行文件):


pyinstaller 指定python pyinstaller 命令_pyinstaller 命令_12


pyinstaller 指定python pyinstaller 命令_缓存_13


pyinstaller 指定python pyinstaller 命令_缓存_14


7. --workpath

该命令可以指定build文件夹中所有文件的生成路径,同理笔者也将其放到桌面上:


pyinstaller 指定python pyinstaller 命令_pyinstaller用法_15


8. --specpath

该命令指定spec文件的生成路径,同样放到桌面上演示下:


pyinstaller 指定python pyinstaller 命令_pyinstaller用法_16


9. --clean

在打包前先清理PyInstaller中的缓存并清除临时文件(如果读者要重新打包的话,建议加上该命令):


pyinstaller --clean belle.py


既然涉及到删除,PyInstaller肯定会询问用户是否确认执行,我们可以加上-y命令(详见-y命令讲解):


pyinstaller --clean -y belle.py


10. --hidden-import

打包结束后,在运行时我们常常会碰到以下错误:


ModuleNotFoundError: No module named xxx


出现这种问题的原因无非就两种:

1. 没有安装相应的模块,那么pip install xxx安装下即可

2. 已经安装了,但PyInstaller在打包时没有找到,这时候读者可以使用该命令来解决(xxx即模块名称):


pyinstaller --hidden-import=xxx belle.py


或者读者可以直接选择在源码中import相应的模块,当然我们还可以修改spec文件来解决(之后章节会讲)。