如何将python文件打包成exe文件

今天用python写了个小软件,想着还没学过如何打包软件,于是就上网学习了一下,最后成功打包了,故来分享一下经验。本文所有的操作都通过命令行完成,便于展示。如果使用pycharm等代码环境也一样,右键进入终端即可。

注:本文仅适用单个.py文件的打包,多文件的以后有空补上。

一、安装Pyinstaller库

Pyinstaller库便是我们这次的主角,它可以将.py文件和你所使用的库打包成一个exe可执行程序。

首先win + R,输入cmd进入命令行,然后输入下面这段代码以安装Pyinstaller。(注意不用进入python)

pip install pyinstaller

二、进入需要打包文件的目录

输入以下指令以进入文件所在目录。这里建议将.py文件提前复制到一个空文件夹里,作为打包后的文件夹,并将图标、使用到的外部库放进去。(如果图标和.py在一个文件夹里,那下面打包的代码中,只用输入xxx.ico即可,没必要把路径输全)。

cd /d "文件所在目录"

三、打包

打包命令如下,做一个简单的解释:

-F 指将所有相关项打包进一个exe程序中;

-w 指的是点击运行exe文件后不显示命令行窗口(写这个参数的话,打开exe的同时会打开一个命令行窗口);

-i 指为exe程序添加一个ico格式的图标。

pyinstaller -F -w -i "ico文件路径" ".py文件路径"

等待一段时间过后,出现successfully后,即代表打包成功。期间可能会报错,一般都是文件路径错误,所以输入命令的时候要特别注意文件路径是否正确。

四、运行

打包之后,会在原先.py文件所在文件夹里生成一些东西,如图所示(openpyxl是外部库,第三步之后会生成这三样东西:build、dist、xxx.spec)。进入dist文件夹就可以看到生成的exe程序了,直接将该exe复制,就可以分享给其他人了。

接下来说一下启动的问题,双击exe启动后,如果遇到闪退(一瞬间跳出一个命令行窗口后又关闭),这一般是没有将外部库导入所导致的问题。

解决方法如下:首先进入命令行,进入该exe程序所在的文件夹,之后直接输入该exe的名称(不带exe后缀),相当于使用命令行运行该程序。此时,就会将你程序运行错误的信息告诉你,如果是出现如下错误,那就是缺少该外部库,去你的python安装文件夹里复制一份到该.py文件所在目录,之后删除build、dist、.spec文件,重新进行打包即可。如出现其他错误信息请自行百度。

ModuleNotFoundError:No module name 'xxx'

五、使用虚拟环境进行打包

上述方法生成的exe文件一般都很大,原因是打包时将很多你程序没用到的库都打包进去了。接下来就介绍一种虚拟环境打包的方法,此种方法只会打包你用到的库,可以大大减少exe的体积。

1. 安装虚拟环境

首先同样是进入命令行,输入以下指令安装虚拟环境。

pip install virtualenv
pip install virtualenvwrapper-win

2. 制作虚拟环境

首先先输入where python查询python路径(如果你安装了多个python版本,记住一个的位置即可,要精确到python.exe文件)。

输入以下指令以制作虚拟环境,环境名称可以自己取。

mkvirtualenv -p="刚刚的python路径" 环境名称

这时会自动进入刚刚你创建的这个虚拟环境,如果你以后还要使用这个虚拟环境的话,可以使用以下代码进入。

workon 环境名称

3. 安装Pyinstaller库

注意,之前提到的方法中安装库的位置是你的电脑里的python,而并不是在这个虚拟环境中,所以要重新安装,代码一样。

pip install pyinstaller

4. 打包

和上面的代码一致,这里就不过多赘述了,在这里再贴一遍。

进入.py文件所在目录。

cd /d "文件所在目录"

打包。

pyinstaller -F -w -i "ico文件路径" ".py文件路径"

你可以将这种方式打包生成的exe的大小和上面那种方法生成的exe的大小进行比较,会发现少了很多。

结语

这里就放上我今天写的这个小软件吧,是个帮助背单词的软件,利用洗牌算法随机从单词表一个个抽取单词,直到结束。

点击添加Excel添加你的单词表,单词的格式如下:第一列:单词;第二列:词性;第三列:词义;
点击随机抽取进入单词显示界面,初始隐藏词义,点击显示词义即可查看单词意思;
点击重置按钮重新进行一次洗牌算法。

下载链接:随机抽取单词软件

本人邮箱:yhyshiroha123@outlook.jp
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇