精品国产一区在线_av无码中文字幕无码王_天海翼三点刺激高潮不停_好硬好大好爽视频_欧美高清一区三区在线专区_香蕉黄色片

痞子衡
認(rèn)證:普通會員
所在專題目錄 查看專題
200行Python代碼實現(xiàn)串口調(diào)試助手(1) - 環(huán)境搭建
200行Python代碼實現(xiàn)串口調(diào)試助手(2) - 界面構(gòu)建
200行Python代碼實現(xiàn)串口調(diào)試助手(3) - 功能實現(xiàn)
200行Python代碼實現(xiàn)串口調(diào)試助手(4) - 聯(lián)合調(diào)試
200行Python代碼實現(xiàn)串口調(diào)試助手(5) - 軟件優(yōu)化
200行Python代碼實現(xiàn)串口調(diào)試助手(6) - 打包發(fā)布
作者動態(tài) 更多
MDK5.40下添加用戶下載算法FLM文件的方法
2星期前
一種多MCU分時復(fù)用Flash啟動的創(chuàng)新方法(下)
06-22 10:33
一種多MCU分時復(fù)用Flash啟動的創(chuàng)新方法(上)
06-15 10:22
RT10xx系列UART SDP能設(shè)置多高波特率?
06-06 09:51
有時候MCU片內(nèi)合封Flash就是個黑盒子!
05-15 13:52

200行Python代碼實現(xiàn)串口調(diào)試助手(6) - 打包發(fā)布

大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是串口調(diào)試工具pzh-py-com誕生之打包發(fā)布

經(jīng)過上一篇軟件優(yōu)化之后,pzh-py-com已經(jīng)初長成,該到了出去歷練的時候了,只有經(jīng)歷廣大群眾考驗過的軟件才是合格的軟件。痞子衡在開發(fā)pzh-py-com時本地安裝了很多軟件:Python、pySerial、wxPython等,這些軟件是pzh-py-com運行的基礎(chǔ),但如果將來別人想用pzh-py-com,是不是也需要安裝這些軟件呢?答案當(dāng)然不是,如果是的話,pzh-py-com基本就沒人愿意使用了。為了讓別人能夠不需要特殊環(huán)境便能運行pzh-py-com,我們需要將pzh-py-com打包成獨立可執(zhí)行文件,此時我們需要借助專門的Python打包工具,本篇是這個系列的最后一篇,痞子衡為大家講如何使用打包工具打包pzh-py-com去發(fā)布。

一、PyInstaller簡介

Python打包工具有很多,如py2exe、cx_Freeze、PyInstaller,其中痞子衡首推PyInstaller。PyInstaller誕生于2005年,經(jīng)過這么多年的發(fā)展,其版本已經(jīng)更新到v3.x,其主頁如下:

PyInstaller官方主頁: http://www.pyinstaller.org/PyInstaller的github主頁: https://github.com/pyinstaller/pyinstaller

在使用PyInstaller進(jìn)行打包工作之前,首先需要確定你的Python應(yīng)用程序所調(diào)用的所有第三方庫是不是在PyInstaller支持列表里,這個主頁顯示了PyInstaller支持的所有第三方庫:https://github.com/pyinstaller/pyinstaller/wiki/Supported-Packages,基本上常用的第三方庫都在列表里,比如Django、numpy、PyGame、PyOpenGL、PyQt、PyWin32等?! yInstaller的使用非常簡單,可先閱讀一遍官方文檔。對于pzh-py-com的打包,我們只需要掌握-F、-w、-i三個命令選項以及.spec文件使用就可以了。

PyInstaller官方文檔主頁: https://readthedocs.org/projects/pyinstaller/PyInstaller 3.3.1命令上手: https://pyinstaller.readthedocs.io/en/v3.3.1/usage.html#optionsPyInstaller 3.3.1 spec文件: https://pyinstaller.readthedocs.io/en/v3.3.1/spec-files.html#using-spec-files

二、將JaysPyCOM打包

安裝好PyInstaller工具便可以開始打包pzh-py-com軟件了,讓我們開始吧,開始之前先介紹下pzh-py-com文件夾目錄結(jié)構(gòu),結(jié)構(gòu)目錄是很簡單的,只有三個.py源文件和三張圖片,這構(gòu)成了pzh-py-com軟件的全部源文件。

\pzh-py-com
           \.idea                          --放置PyCharm工程文件
           \bin                            --放置工程發(fā)布的exe文件
           \gui                            --放置工程GUI設(shè)計文件
                  \pzh-py-com.fbp            --wxFormBuilder工程文件
           \img                            --放置工程引用圖片文件
                  \led_black.png?x-oss-process=image/watermark,g_center,image_YXJ0aWNsZS9wdWJsaWMvd2F0ZXJtYXJrLnBuZz94LW9zcy1wcm9jZXNzPWltYWdlL3Jlc2l6ZSxQXzQwCg==,t_20
                  \led_green.png?x-oss-process=image/watermark,g_center,image_YXJ0aWNsZS9wdWJsaWMvd2F0ZXJtYXJrLnBuZz94LW9zcy1wcm9jZXNzPWltYWdlL3Jlc2l6ZSxQXzQwCg==,t_20
                  \logo_merge.jpg?x-oss-process=image/watermark,g_center,image_YXJ0aWNsZS9wdWJsaWMvd2F0ZXJtYXJrLnBuZz94LW9zcy1wcm9jZXNzPWltYWdlL3Jlc2l6ZSxQXzQwCg==,t_20
           \src                            --放置工程源代碼文件
                  \formatter.py    --工程linker文件
                  \main.py         --板級相關(guān)的源文件(比如pinout,clock等)
                  \win.py          --wxPython窗口源文件(wxFormBuilder生成)

2.1 打包準(zhǔn)備

由于pzh-py-com應(yīng)用程序總共只有6個源文件,并且都已經(jīng)準(zhǔn)備就緒,pzh-py-com依賴的pySerial、wxPython庫也都在PyInstaller支持的列表里,所以唯一剩下的準(zhǔn)備工作便是制作pzh-py-com的圖標(biāo)文件。  

要制作圖標(biāo)文件,首先你得有一張圖片文件,痞子衡將pySerial的logo截取了部分用作pzh-py-com的圖標(biāo),有了圖片,可以使用這個網(wǎng)站 https://converticon.com/ 將其轉(zhuǎn)換成圖標(biāo)文件(.ico),圖標(biāo)文件制作好之后將其放在 \pzh-py-com\img\目錄下:

\pzh-py-com
           \img                            --放置工程引用圖片文件
                  \pzh-py-com.png?x-oss-process=image/watermark,g_center,image_YXJ0aWNsZS9wdWJsaWMvd2F0ZXJtYXJrLnBuZz94LW9zcy1wcm9jZXNzPWltYWdlL3Jlc2l6ZSxQXzQwCg==,t_20
                  \pzh-py-com.ico

2.2 開始打包

準(zhǔn)備工作就緒,可以開始打包了,在使用PyInstaller打包前必須明白一點的是,PyInstaller僅能將.py格式的源文件以及其所調(diào)用的相關(guān)Python第三方源文件庫打包進(jìn)最終的.exe文件,如果你的應(yīng)用程序會用到圖片等多媒體文件,這些多媒體文件并不能被打包,后續(xù)exe在使用時,這些多媒體文件必須一同在場,并且還要保證與打包/開發(fā)時的相對路徑是一致的?! ?/p>

痞子衡使用的是如下命令格式打包pzh-py-com: pystaller -F -w [src1.py] [src2.py]... -i [pic.ico],解釋一下這個命令組合,-F的意思是將應(yīng)用程序打包成單個可執(zhí)行文件(與其對立的命令是-D,打包成多文件放在一個文件夾),-w表明要打包成窗口型(與其對立的命令是-c,控制臺型),[src1.py][src2.py][...]為你自己創(chuàng)建的應(yīng)用程序源文件(src1.py必須是含__main__的主函數(shù)文件),-i指定圖標(biāo)文件。

PS D:\my_git_repo\pzh-py-com\bin> pyinstaller -F -w ..\src\main.py ..\src\formatter.py ..\src\win.py -i ..\img\pzh-py-com.ico

223 INFO: PyInstaller: 3.3.1
225 INFO: Python: 2.7.14
...
14707 INFO: Appending archive to EXE D:\my_git_repo\pzh-py-com\bin\dist\main.exe
14724 INFO: Building EXE from out00-EXE.toc completed successfully.

打包命令成功執(zhí)行之后,便可以在\pzh-py-com\bin目錄下看到如下生成的文件:

\pzh-py-com
           \bin                            --放置工程源代碼文件
                  \build\                    --
                  \dist\main.exe             --可執(zhí)行exe文件
                  \main.spec                 --spec文件

其中build文件夾存放的是PyInstaller在打包過程中生成的調(diào)試信息文件,dist文件夾下面的main.exe便是我們要的最終的可執(zhí)行文件,main.spec是PyInstaller自動生成的命令解釋文件,其實你在命令行里輸入的命令首先被翻譯放到.spec文件里,然后PyInstaller主要是根據(jù).spec文件來打包的,不信你可以試著用pyinstaller main.spec命令重新再打包一次,得到的結(jié)果是一樣的。下面是.spec文件里的內(nèi)容,如果你對.spec文件了解,當(dāng)然也可以自己創(chuàng)建.spec文件來進(jìn)行打包。

# -*- mode: python -*-

block_cipher = None


a = Analysis(['main.py', 'formatter.py', 'win.py'],
             binaries=[],
             datas=[],
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          name='pzh-py-com',
          debug=False,
          strip=False,
          upx=True,
          runtime_tmpdir=None,
          console=False , icon='..\\img\\pzh-py-com.ico')

main.exe可執(zhí)行文件已經(jīng)生成好了,讓我們試著打開使用一下,直接在\pzh-py-com\bin\dist\目錄下打開這個文件發(fā)現(xiàn)報了如下錯誤,看起來是找不到圖片路徑,這是怎么回事?痞子衡其實在前面已經(jīng)提到過,需要保證文件夾內(nèi)圖片相對路徑與打包時相對路徑一致,試著將main.exe放到\pzh-py-com\bin\目錄下再打開看是不是正常了,因為這時候相對路徑是一致的。大功告成了,最后將main.exe重命名為pzh-py-com.exe。

番外篇

正文中講了,最終的pzh-py-com.exe必須配合pzh-py-com文件夾(主要是\img里的圖片)一起使用,并且不能任意移動pzh-py-com.exe在pzh-py-com文件夾中位置,看起來這個pzh-py-com.exe還是有一些使用限制(當(dāng)然你可以創(chuàng)建pzh-py-com.exe的快捷方式到桌面,你可以任意移動這個快捷方式,這算是一個workaround),能不能打破這個限制?只要一個pzh-py-com.exe文件即可,并且放到任意目錄下都能運行?答案是有,可以參看這篇文章的思路 pyinstaller打包——圖片資源無法顯示問題,思路大概原理是事先將圖片編碼存到.py源文件里,這樣在打包時便可將這個圖片數(shù)據(jù).py源文件直接打包進(jìn)pzh-py-com.exe,后續(xù)pzh-py-com.exe在運行時首先將圖片數(shù)據(jù)解碼出來并在本地保存為臨時圖片,這樣pzh-py-com.exe啟動便可完成圖片加載,等pzh-py-com.exe圖片加載完成之后可以刪除臨時圖片文件。思路有了,小伙伴趕緊動手試一試,這算是痞子衡在這個系列最后一課留給大家的一個課后作業(yè)。

至此,串口調(diào)試工具pzh-py-com誕生之打包發(fā)布痞子衡便介紹完畢了,掌聲在哪里~~~

聲明:本內(nèi)容為作者獨立觀點,不代表電子星球立場。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請聯(lián)系:editor@netbroad.com
覺得內(nèi)容不錯的朋友,別忘了一鍵三連哦!
贊 2
收藏 3
關(guān)注 41
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧
主站蜘蛛池模板: 国产九区一区在线 | 熟睡人妻被讨厌的公侵犯深田咏美 | 中国国产黄色片 | 久久久久久久久久久视频 | 久草网视频在线观看 | 97视频一二区 | 国产成人精品一区二区三区视频 | videosfree少妇| 亚洲宅男av | 曰本人做爰大片免费观看一老师 | 亚洲国产日韩欧美 | 视频二区三区 | 日韩亚洲区字幕 | 久久久精品播放 | 特级毛片www欧美 | 巨胸喷奶水WWW视频网站 | 日韩一二三四 | 日韩毛片一区二区三区免费播放 | 高潮videossexohd潮喷 | 亚洲 精品 主播 自拍 | 亚洲国产成人一区二区三区 | 成人免费国产视频 | 久久综合狠狠综合久久综青草 | 粗大挺进亲女h在线观看视频 | 日韩中文字幕高清在线专区 | 91经典视频| 欧美日韩精品码免费专区 | 91精品久久久久五月天精品 | 水野优香在线一区二区88 | av不卡免费 | 日韩精品中出 | 亚洲国产无码在线观看 | 欧美人与拘性视交 | 成年人黄色a级片 | 成人网站免费大全日韩国产 | 欧美内谢69xxxx免费视频 | 人人干人人添 | 欧美成人天天综合在线视色 | 国产一二久 | 琪琪五月| 国产在线麻豆精品观看 |