将.py文件打包成.exe文件

文章目录

      • 步骤:
        • [1. 安装 PyInstaller](#1. 安装 PyInstaller)
        • [2. 打包 `.py` 文件为 `.exe`](#2. 打包 .py 文件为 .exe)
        • [3. 其他常见的选项](#3. 其他常见的选项)
        • [4. 查找生成的 `.exe` 文件](#4. 查找生成的 .exe 文件)
        • [5. 打包的其他文件和目录](#5. 打包的其他文件和目录)
      • 注意事项:

突然想到.py文件每次运行还得打开编译器,真麻烦,直接打包成.exe文件不是方便很多
要将 .py 文件打包成 .exe 文件,你可以使用 PyInstaller 工具。 PyInstaller 是一个常用的 Python 工具,它可以将 Python 脚本打包成独立的可执行文件,允许你在没有安装 Python 的机器上运行脚本。

步骤:

1. 安装 PyInstaller

首先,确保你已经安装了 PyInstaller。如果没有安装,可以通过 pip 来安装:win+r ,输入cmd

激活环境

bash 复制代码
conda activate base
bash 复制代码
pip install pyinstaller
2. 打包 .py 文件为 .exe

假设你有一个 Python 脚本 script.py,你可以在命令行中使用以下命令来打包:

bash 复制代码
pyinstaller --onefile script.py

这个命令的含义:

  • --onefile:将所有依赖打包成一个单独的 .exe 文件。如果不加 --onefile,PyInstaller 会生成一个包含多个文件和目录的输出。
  • script.py:你的 Python 脚本文件名。
3. 其他常见的选项

PyInstaller 提供了很多选项,可以根据你的需求进行选择:

  • 隐藏控制台窗口(适用于 GUI 应用程序):

    如果你的应用程序是图形界面(GUI)应用程序,而你不希望看到控制台窗口,可以加上 --noconsole(或 -w)参数:

    bash 复制代码
    pyinstaller --onefile --noconsole script.py
  • 添加图标

    可以为生成的 .exe 文件设置图标,使用 --icon 参数:

    bash 复制代码
    pyinstaller --onefile --icon=icon.ico script.py

    icon可以在https://www.iconfont.cn/下载. 下载的png改后缀为.ico即可

    • 关闭终端

    • 但是每一次启动都会出现终端,感觉很恶心.索性不希望看到终端窗口,只想显示图形界面,可以通过以下步骤来避免打开控制台窗口:
bash 复制代码
pyinstaller --onefile --icon=icon.ico --noconsole script.py

完成,结束.

4. 查找生成的 .exe 文件

运行完上述命令后,PyInstaller 会在当前目录下创建一个 dist 文件夹,生成的 .exe 文件会保存在该文件夹中。

例如,在 dist 文件夹下,你可以找到 script.exe 文件。

5. 打包的其他文件和目录

除了 .exe 文件,PyInstaller 还会生成一些其他文件和目录,通常是一些临时文件和依赖库。它们会存放在 build 文件夹中。你不需要关心这些文件,因为最终的 .exe 文件已经包含了所有必要的依赖。

注意事项:

  1. 外部依赖 :如果你的 Python 脚本依赖于其他第三方库(例如 tkinternumpyPillow 等),PyInstaller 会自动将它们打包进 .exe 文件。但某些库可能会遇到问题,具体可以参考 PyInstaller 的文档进行调整。
  2. 文件大小 :打包后的 .exe 文件可能会非常大,因为它包含了 Python 解释器和所有依赖的库。
  3. 测试 :在其他机器上运行打包后的 .exe 文件时,确保目标机器已安装必要的运行时环境。对于某些库(例如 numpypandas 等),需要特别注意依赖关系。
相关推荐
石榴树下的七彩鱼13 分钟前
图片去水印 API 详解:从单图到批量自动化去水印(附 Python/JS/PHP 完整教程)
python·自动化·图片处理·图片去水印·石榴智能·api教程
Li emily6 小时前
解决了加密货币api多币种订阅时的数据乱序问题
人工智能·python·api·fastapi
2301_781571427 小时前
Golang格式化输出占位符都有什么_Golang fmt占位符教程【通俗】
jvm·数据库·python
asdzx677 小时前
使用 Python 为 PDF 添加页码 (详细教程)
python·pdf·页码
AI技术控7 小时前
《Transformers are Inherently Succinct》论文解读:从“能表达什么”到“多紧凑地表达”
人工智能·python·深度学习·机器学习·自然语言处理
金融大 k9 小时前
Python 全球指数监控面板:TickDB + REST + WebSocket 完整方案
python·websocket
啊哈哈121389 小时前
系统设计复盘:为什么 Agent 的 ReAct 循环必须内嵌确定性保护层——以 FitMind 健康助手的路由与步骤控制为例
人工智能·python·react
一颗牙牙10 小时前
安装mmcv
开发语言·python·深度学习
大数据魔法师11 小时前
Streamlit(二)- Streamlit 架构与运行机制
python·web
m0_4708576411 小时前
PHP怎么实现工厂模式_Factory模式编写指南【指南】
jvm·数据库·python