使用pyinstaller将具有多个python文件的项目打包为exe(含依赖库)

1、将需要打包有python文件放到一个文件夹,例如下图所示的Demo文件夹,其中ClickEveryDay.py为主文件,telegram.ico为图标文件。

使用pyinstaller将具有多个python文件的项目打包为exe(含依赖库)_第1张图片

  2、生成主函数对应的spec文件

命令:在Demo文件夹路径下使用:pyi-makespec ClickEveryDay.py,将产生一个ClickEveryDay.spec文件。

使用pyinstaller将具有多个python文件的项目打包为exe(含依赖库)_第2张图片

3、修改ClickEveryDay.spec文件:加入需要打包的所有python文件,设置以下内容:

    1)将所有需要打包的.py文件写到py_files列表,并将其作为Analysis的第一个参数;

    2)将Demo的绝对路径填入pathex,例如下图中的pathex=["C:\\Users\\shewe\\Desktop\\ClickEveryDay\\demo"],注意,一定是绝对路径。

    3)将需要打包的外部文件“chromedriver.exe”、“telegram.ico”写成一个add_files列表,作为Analysis的datas参数的值。需要说明的是,本项目是一个爬虫项目,需要使用chromedriver.exe浏览器插件,因此需要随项目打包,但并不是所有项目都需要这种外部文件的;telegram.ico为打包后exe文件的图标,建议每个exe都使用一个自定义的图标,否则pyinstaller将自动给一个不太好看的默认图标。

    4)将py文件中import的第三方库填入hiddenimports,本项目中用到了'selenium', 'smtplib', 'email'三个第三方库。

    5)在exe = EXE(......)中增加对icon图标的设置。本项目中设置了icon='telegram.ico'。

 使用pyinstaller将具有多个python文件的项目打包为exe(含依赖库)_第3张图片

使用pyinstaller将具有多个python文件的项目打包为exe(含依赖库)_第4张图片

4、对ClickEveryDay.spec文件进行pyinstaller安装

执行命令:pyinstaller ClickEveryDay.spec

出现以下提示,说明安装成功

此时项目下多了两个目录,进入dist目录,找到dist路径下后缀名为exe的文件。这里为dist下目录ClickEveryDay下的ClickEveryDay.exe。

 使用pyinstaller将具有多个python文件的项目打包为exe(含依赖库)_第5张图片

 此时打包成功,可以脱离开发环境单独运行了。 

如果需要更复杂的打包设置,可以参阅:Pyinstaller的Spec文件用法_tangfreeze的博客-CSDN博客_pyinstaller spec文件

 参考文献:

【python第三方库】pyinstaller使用教程及spec资源文件介绍_All_In_gzx_cc的博客-CSDN博客_python spec文件

Pyinstaller的Spec文件用法_tangfreeze的博客-CSDN博客_pyinstaller spec文件

pyinstaller打包为可单独运行的EXE(含依赖文件)_shewei1977的博客-CSDN博客_python程序打包为exe后依赖https://www.jb51.net/article/253660.htm

你可能感兴趣的:(python,python,开发语言)