如何使用pyinstaller打包多个和单个python文件详解

 更新时间:2022年06月30日 15:34:37   作者:Acheng1011  
最近需要将python写的程序打包分发给其他同事使用,下面这篇文章主要给大家介绍了关于如何使用pyinstaller打包多个和单个python文件的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

一、打包多个

1、将需要打包的项目为anjuke_sd目录下的所有python文件,其中excute_main.py为主文件。

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

命令:在anjuke_sd路径下使用:pyi-makespec excute_main.py

如下图已经生成excute_main.spec文件。

3、修改spec文件:加入需要打包的所有python文件,同时确保以下两项包含该项目的路径

4、对spec文件进行pyinstaller安装

命令:pyinstaller excute_main.spec

若显示如下所示则证明打包成功。

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

打包成功!

二、打包单个文件

1、还是进入你需要打包的文件的路径,执行命令:pyinstaller -F 1.py,如下图所示。

ps: -F参数表示覆盖打包,这样在打包时,不管我们打包几次,都是最新的,这个记住就行,固定命令。

出现问题:

assert mpl_data_dir, “Failed to determine matplotlib’s data directory!”
AssertionError: Failed to determine matplotlib’s data directory!

解决:

找到该文件:

D:\ProgramFile\Python38\Lib\site-packages\PyInstaller\hooks

修改hook-matplotlib.py文件,按照如下代码进行修改,再次打包就可以正常

import matplotlib
mpl_data_dir = matplotlib.get_data_path()
datas = [
    (mpl_data_dir, "matplotlib/mpl-data"),
]

2、执行完毕之后,会生成几个文件夹,如下图所示。

点进去就看到了exe,点击运行

OK!

3、默认打包图片,如下图所示。

加上 -i 参数之后,如下图所示,会形成一个类似风力发电机的logo图案。

ps:程序路径最好全部都是英文,否则肯能会出现莫名其妙的问题

总结命令

  • Pyinstaller -F setup.py 打包exe
  • Pyinstaller -F -w setup.py 不带控制台的打包
  • Pyinstaller -F -i xx.ico setup.py 打包指定exe图标打包

平常我们只需要这三个就好了,足够满足所有需求了。

总结

到此这篇关于如何使用pyinstaller打包多个和单个python文件的文章就介绍到这了,更多相关pyinstaller打包python文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python实现搜索算法的实例代码

    Python实现搜索算法的实例代码

    这篇文章主要介绍了Python实现搜索算法,文中通过实例代码给大家分享高级搜索算法的想法,分为线性搜索和插值搜索,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01
  • 浅析python 动态库m.so.1.0错误问题

    浅析python 动态库m.so.1.0错误问题

    这篇文章主要介绍了python 动态库m.so.1.0错误问题,文中给大家提到了python中使用动态库的方法,通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • 用python监控服务器的cpu,磁盘空间,内存,超过邮件报警

    用python监控服务器的cpu,磁盘空间,内存,超过邮件报警

    这篇文章主要介绍了如果用python监控服务器的cpu,磁盘空间,内存,超过邮件报警,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2021-01-01
  • 用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码

    用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码

    这篇文章主要介绍了用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码,主要分为两部分,获取网页上数据和图片保存到本地等,感兴趣的可以了解一下
    2020-07-07
  • pyinstaller打包成无控制台程序时运行出错(与popen冲突的解决方法)

    pyinstaller打包成无控制台程序时运行出错(与popen冲突的解决方法)

    这篇文章主要介绍了pyinstaller打包成无控制台程序时运行出错(与popen冲突的解决方法),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • python字典取值的几种方法总结

    python字典取值的几种方法总结

    这篇文章主要介绍了python字典取值的几种方法总结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • python公司内项目对接钉钉审批流程的实现

    python公司内项目对接钉钉审批流程的实现

    最近把组内的一个项目对接钉钉审批接口,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • Pycharm配置导入torch报错Traceback的问题及解决

    Pycharm配置导入torch报错Traceback的问题及解决

    这篇文章主要介绍了Pycharm配置导入torch报错Traceback的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Python实现迪杰斯特拉算法过程解析

    Python实现迪杰斯特拉算法过程解析

    这篇文章主要介绍了Python实现迪杰斯特拉算法过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • python基础详解之if循环语句

    python基础详解之if循环语句

    这篇文章主要介绍了python基础详解之if循环语句,文中有非常详细的代码示例,对正在学习python的小伙伴们有很好的帮助需要的朋友可以参考下
    2021-04-04

最新评论