前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 程序编译:Pyinstaller库的使用

Python 程序编译:Pyinstaller库的使用

作者头像
小嗷犬
发布2022-11-15 15:29:01
1.4K0
发布2022-11-15 15:29:01
举报
文章被收录于专栏:小嗷犬的CSDN文章

✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的博客 🍊个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 🥭本文内容:Python 程序编译:Pyinstaller库的使用


Python 程序编译:Pyinstaller库的使用


1.Pyinstaller库简介

Pyinstaller 是一个第三方库,它能够在 WindowsLinuxMac OS X 等操作系统下将 Python 源文件打包,通过对源文件打包, Python 程序可以在没有安装 Python 的环境中运行,也可以作为一个 独立文件方便传递和管理。

PyInstaller 支持 Python 2.7 和 Python 3.3+。可以在 WindowsMac OS XLinux上使用,但是并不是跨平台的,而是说你要是希望打包成.exe文件,需要在 Windows系统上运行 PyInstaller 进行打包工作;打包成mac app,需要在Mac OS上使用。

Pyinstaller 库需要通过pip指令安装:

代码语言:javascript
复制
pip install pyinstaller

PyInstaller 库会自动将 PyInstaller 命令安装到 Python 解释器 目录中,与 pip 或 pip3 命令路径相同,因此可以直接使用。


2.Pyinstaller库常用命令

Pyinstaller库常用命令只有一个,语法如下:

代码语言:javascript
复制
pyinstaller 选项 .py文件路径

Pyinstaller 支持的常用选项如下:

选项

描述

-h,–help

查看该模块的帮助信息

-F,-onefile

产生单个的可执行文件

-D,–onedir

产生一个目录(包含多个文件)作为可执行程序

-a,–ascii

不包含 Unicode 字符集支持

-d,–debug

产生 debug 版本的可执行文件

-w,–windowed,–noconsole

指定程序运行时不显示命令行窗口(仅对 Windows 有效)

-c,–nowindowed,–console

指定使用命令行窗口运行程序(仅对 Windows 有效)

-o DIR,–out=DIR

指定 spec 文件的生成目录。如果没有指定,则默认使用当前目录来生成 spec 文件

-p DIR,–path=DIR

设置 Python 导入模块的路径(和设置 PYTHONPATH 环境变量的作用相似)。也可使用路径分隔符(Windows 使用分号,Linux 使用冒号)来分隔多个路径

-n NAME,–name=NAME

指定项目(产生的 spec)名字。如果省略该选项,那么第一个脚本的主文件名将作为 spec 的名字

-i

选择图标

更多选项可以通过pyinstaller -h命令查看。


3.程序编译实例

这里我们选择之前海龟绘图中绘制小樱花树的程序案例进行演示。 程序代码请见:Python 海龟绘图:turtle库的使用

先让我们打开源文件所在文件夹:

文件夹1
文件夹1

鼠标右键空白处选择在终端打开:

文件夹2
文件夹2

在PowerShell中输入相应的pyinstaller命令:

控制台1
控制台1

回车,待命令执行完毕:

控制台2
控制台2

在刚刚的文件夹中,我们就能看到多出来很多东西:

文件夹3
文件夹3

这里我们使用了-F选项,也就是编译成单个的可执行文件,在生成的dist文件夹中的.exe文件就是我们要的可执行文件了:

文件夹4
文件夹4

让我们双击文件就可以看到运行了:

小樱花树
小樱花树

编译出来的.exe文件运行不再需要依赖Python环境,快发给你的其他专业朋友玩玩吧!


4.注意事项

4.1 包文件过大怎么办

利用 PyInstaller 对指定的的脚本打包时,会先分析脚本所依赖的其他脚本,然后根据导包路径去查找,把所有相关的脚本收集起来,包括 Python解析器,然后根据你的命令参数可分别生成文件夹,或者打包成一个可执行文件。

为了避免 Pyinstaller 打包后程序或文件夹过大,在引用包时,尽量使用 from ... import ...语句,而不是直接使用import导入整个库,这样可以一定程度减小生成文件的大小。

4.2 双击运行程序一闪而过怎么办

如果是简单的没有图形化界面,仅仅在控制台上运行的程序,可能会出现运行可执行程序后出现一闪而过的情况,这种情况是因为 Windows控制台在执行完程序后会自动关闭控制台窗口。

这种情况我们可以通过以下几种方式解决:

  1. 在程序末尾使用input()函数捕捉输入,自己主动输入结束程序。
  2. cmd下运行.exe文件,从而通过cmd看到效果。
  3. 导入os模块,在程序末尾添加os.system("pause")来防止控制台关闭。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-11-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Python 程序编译:Pyinstaller库的使用
  • 1.Pyinstaller库简介
  • 2.Pyinstaller库常用命令
  • 3.程序编译实例
  • 4.注意事项
    • 4.1 包文件过大怎么办
      • 4.2 双击运行程序一闪而过怎么办
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档