Python如何生成exe文件?用Pycharm一步步带你学(超详细、超贴心)

作者:Nire_谒羽 时间:2023-09-08 04:46:20 

目的描述:

为了让没有安装Python的人也能使用我们编写的.py文件,我们需要将编写好的Python程序生成.exe文件。

第一步 下载pyinstaller

pyinstaller插件是Python自带的插件,用于为我们写好的代码进行打包,最终自动合成.exe文件。

在Pycharm界面的最下面,你可以看到Terminal,选择这个选项,这就是一个终端界面。

Python如何生成exe文件?用Pycharm一步步带你学(超详细、超贴心)

在此界面写输入指令: pip install pyinstaller 对pyinstaller进行下载。

在下载过程中,可能会遇到一些错误提示,解决方案可以参考我的另外几篇博客:

常见错误提示一:

You are using pip version 10.0.1, however version 20.0.2 is available.
You should consider upgrading via the ‘python -m pip install --upgrade pip’ command.

常见错误提示二:

NoneType’ object has no attribute 'bytes

第二步 使用pyinstaller

在终端里输入的指令为: pyinstaller -w -F XXX.py

但是对于初学者来说,这里要解释的东西很多:

-w:表示希望在生成的.exe程序运行过程中,不要出现cmd黑框(就是图中的黑框)(注意:小写!)

Python如何生成exe文件?用Pycharm一步步带你学(超详细、超贴心)

-F:表示希望将所有的程序全部打包在一起,生成的只有一个.exe文件,这样的文件集成度高,但是运行速度慢;如果不写-F,生成的还有一堆.dll文件,这样的程序里文件很多,但是运行速度比较快,这也是我们平时使用的程序的样式(如图)(注意:大写!)

Python如何生成exe文件?用Pycharm一步步带你学(超详细、超贴心)

XXX.py:指的是你整个项目的入口程序,大家写项目时很可能是多文件编程,你整个项目时靠哪个文件作为入口拉起来的,就填那个文件的名字。

常见错误:

ValueError: script ‘C:\Users\Administrator.XXX.py’ not found

找不到XXX.py这个程序

Python如何生成exe文件?用Pycharm一步步带你学(超详细、超贴心)

解决方案:

pyinstaller找文件的方法是看你建立的那个工程文件夹里有没有你写进去的文件,而不是看子文件夹里有没有。如果您是在子文件夹中写程序,可以把你写的所有程序都拷贝到工程文件夹中。

如果你在代码中导入了图片、文档等与路径相关的文件,注意修改路径。

第三步: 找到生成的.exe文件

有不少同学都反映,没有看到生成的.exe文件。

没看见就对了,因为.exe文件根本不在工程文件夹下面。运行pyinstaller -w -F XXX.py指令后,会生成两个文件夹:一个叫build,另一个叫dist。

Python如何生成exe文件?用Pycharm一步步带你学(超详细、超贴心)

点开dist文件夹,里面会有一个用你填进去的XXX命名的文件夹,再点进去,你就会看到XXX.exe文件。

Python如何生成exe文件?用Pycharm一步步带你学(超详细、超贴心)

理论上你已经生成了.exe可执行文件,这样就完成了。如果你的.exe文件可以运行起来,那么恭喜你!但是实施情况是,这个.exe文件运行起来很有可能会有各种各样奇葩的问题:比如闪退、双击后直接消失了、程序莫名其妙地崩掉等。

来源:https://blog.csdn.net/Nire_Yeyu/article/details/10468388

标签:python,生成,exe
0
投稿

猜你喜欢

  • 10个精致的导航菜单欣赏及点评

    2011-09-22 20:33:44
  • window.location.hash属性介绍

    2008-03-21 12:39:00
  • python 绘制斜率图进行对比分析

    2022-03-18 15:31:38
  • Django中使用Celery的教程详解

    2023-07-12 05:08:35
  • 作符合用户体验的input输入框

    2008-01-10 12:21:00
  • PHP延迟静态绑定示例分享

    2024-06-05 15:42:24
  • python使用 request 发送表单数据操作示例

    2022-08-06 07:31:07
  • Pycharm设置去除显示的波浪线方法

    2022-06-29 16:04:59
  • 浅谈Python实现Apriori算法介绍

    2021-09-14 19:10:22
  • vue3封装侧导航文字骨架效果组件

    2024-04-27 16:10:03
  • python lambda表达式(匿名函数)写法解析

    2023-07-30 20:56:12
  • javascript 文章截取部分无损html显示实现代码

    2024-04-19 09:57:11
  • Vue router安装及使用方法解析

    2023-07-02 16:50:00
  • sqlserver数据库优化解析(图文剖析)

    2024-01-17 08:55:37
  • python图像处理模块Pillow的学习详解

    2021-06-03 19:19:03
  • [JS]用 或 || 来兼容FireFox

    2013-06-26 14:50:47
  • CKEditor/FCKEditor 使用 CKeditor 3.0.1 快速使用教程(含插入图片)

    2022-10-16 14:04:14
  • python知识:装饰器@property到底有啥用途

    2022-07-23 12:25:45
  • 用Python代码来解图片迷宫的方法整理

    2023-03-17 18:35:43
  • Python使用scrapy采集时伪装成HTTP/1.1的方法

    2023-07-07 01:28:40
  • asp之家 网络编程 m.aspxhome.com