SBI y 发表于 2023-4-30 13:56:18

使用pyinstaller给你的python程序打包成exe应用程序

本帖最后由 SBI y 于 2023-4-30 14:02 编辑

      以前愚人节,想给同学发个恶搞的程序,但无奈他们的电脑上没有python,运行不了;对你们来说,恶搞朋友就怕代码会被查——出大问题!!!
      现在解决办法来了:给程序打包成exe可执行应用程序。这篇帖子可以教你怎么来打包。
      {:5_133:}
Step_1:下载模块pyinstaller

      先使用pip指令下载pyinstaller模块,mind+亲测可用,不过我已经下载过了,现在是这样:
      
      接下来,我们要找到下载好的pyinstaller模块,它会下载到你用的python的script文件夹下。
      那么mind+的python在哪儿呢?
      只需要根据python的搜索路径顺藤摸瓜就行了:
      
      找到script文件夹:
      
      可以看到已经下载好了:
      

Step_2:使用准备
      按下win+R,打开cmd:
      
      
      输入pyinstaller --version查看模块的版本,输入pyinstaller -h查看模块的所有的命令和帮助:
      
      注:如果在cmd里使用不了python、pip、pyinstaller之类的指令,请参考这篇文章的后半部分来设置环境变量。 (如果还是不行,可以用模块所在位置+pyinstaller.exe(如我的就是C:\Users\Administrator\Documents\mindplus-py\environment\Python3.8.5-64\Scripts\pyinstaller.exe)来替换指令中的pyinstaller,step1中的“顺藤摸瓜”有用了。)

Step_3:使用
基础/常用指令(一行中用逗号隔开的指令作用相同):
-h,--help                                  ——查看模块帮助
-v,--version                            ——查看模块版本




-D,--onedir                            ——打包py程序成exe应用程序,有很多的依赖(我不喜欢用,不做示例,可以自己尝试)
-F,--onefile                            ——打包py程序成exe应用程序(只有一个文件)


-n,--name                        ——命名
-i,--icon                                  ——修改图标(一般是64x64,ico格式)


-c,--console,--nowindowed   ——(使程序)有控制台(没有图形窗口)
-w, --windowed, --noconsole ——(使程序)有图形窗口(没有控制台)


      -D和-F效果相反,不能同时使用;-c和-w效果相反,不能同时使用。


示例:

a few 素材:
      给你们准备了一些素材:
          |a. 一个可以控制鼠标的恶搞程序
          |b. pygame五子棋小游戏
          |c. 两张图片(做图标用)
      请在文末自行领取。


Example_1:打包程序a(没有图形窗口,命名:使用指令-F,-n,-c)
       先cd到一个目录:
      
       里面有个mian.py(里面的代码和素材a一样,素才a文末自取):
      
      
       输入指令pyinstaller -F main.py -c -n 一个恶搞小程序:

       -F main.py ——把脚本main.py打包成一个文件;
       -c             ——使程序只有控制台;
       -n 一个恶搞小程序
                     ——命名文件为“一个恶搞小程序”。
      
       然后回车,静待打包:
      
       不知道长长的输出了一段什么,反正最后一个单词是successfully那么你就成功完成了打包。
       回到文件夹:
      
       你会发现多了“一个恶搞小程序.spec”文件,“dist”和“build”文件夹。
       dist中的exe应用程序就是打包好的py文件,名字也改好了,在任意电脑上可以直接运行:
      
       其他玩意儿现在没什么用,删了也没关系。
       接下来双击运行看看效果吧。

Example_2:打包程序b(有图形窗口,命名,添加图标:使用指令-F,-n,-w,-i)
       先cd到一个目录,有咱们需要的文件:
      
      
       要用的文件(文末自取):
          |a. pygame五子棋小游戏(五子棋.py)
          |b. 两张图标图片(五子棋ico.ico和五子棋2ico.ico,自己选择用哪个)
          |c. 一张名为“五子棋”的png格式图片(用作窗口图标)
       注:应用程序图标仅支持ico格式图片,可以使用比特虫在线ico图标转换工具转换图片格式。

       接下来输入指令pyinstaller -F 五子棋.py -w -i 五子棋2ico.ico -n 五子棋:
       -F 五子棋.py ——把脚本五子棋.py(文件a)打包成一个文件;
       -w            ——使程序只有控制台;
       -i 五子棋2ico.ico
                         ——添加图标五子棋2ico.ico(文件b的第二个)
       -n 五子棋   ——命名文件为“五子棋”。
      

       仍然回车,静待打包:
      
       ……
      
       还是不知道输出了,不过有个successfully——成功了,真聪明。
       回到文件夹:
      
       多了“五子棋.spec”文件,“dist”和“build”文件夹,不过除了dist中打包好的应用程序意外,都删了也没问题。
       只要这个:
      
       名字、图标都改好了,现在可以直接运行了。
       {:5_122:}

























…… 啊不不不,有一个问题!
      不过问题是什么,我才不告诉你,除非你在评论区问我;或者你得通读源代码和此贴。
      {:5_151:}

























附件:
素材(step_3=>示例=>a few 素材):
       a.代码
       b.代码
       c.两张图片



成品:
如果你懒得亲自动手那么这里有现成的作品,虽然我不建议你直接拿走。
Step_3=>示例=>Example_1:
       1.打包好的恶搞程序(exe):

Step_2=>示例=>Example_2:
       1.两张做好的可以用作图标的ico格式图片
       ↑都在这:
         *.打包好的五子棋游戏(exe)由于太大了没办法上传,自己努力吧!


PS:
       1.代码中调用的文件要使应用程序找得到(如python搜索路径、相对路径、绝对路径、程序所在文件夹下的文件),不然会出错 。
      2.执行效率貌似会提高{:5_171:}
      3.文件比较大……
      4.五子棋怎么玩可以看源代码,或者评论区问我。
      5.很奇怪为什么添加的表情没显示出来。





SBI y 发表于 2023-4-30 13:56:51

沙发上静待鱼儿上钩

qrm 发表于 2023-5-7 16:47:30

pyinstaller好评!我经常用它打包一些小程序发给老师用,解决了挺多问题(但容易被win10自带的防病毒程序误删)
页: [1]
查看完整版本: 使用pyinstaller给你的python程序打包成exe应用程序