最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Windows環(huán)境打包python工程為可執(zhí)行程序的詳細(xì)過(guò)程

 更新時(shí)間:2024年01月29日 10:05:47   作者:Jelly-小丑魚  
我的開發(fā)環(huán)境是windows7,然后系統(tǒng)是64位,安裝的python和wxpython都是32位的,本文記錄我怎樣用pyinstaller打包我用python開發(fā)的工程,在網(wǎng)上搜索了很多資源,基本上都是不全的,所以我在這兒記錄一下這個(gè)比較完整的過(guò)程,一起看看吧

此次博客的目的是記錄我怎樣用pyinstaller打包我用python開發(fā)的工程,在網(wǎng)上搜索了很多資源,基本上都是不全的,所以我在這兒記錄一下這個(gè)比較完整的過(guò)程。

前言:概述一哈,我的開發(fā)環(huán)境是windows7,然后系統(tǒng)是64位,安裝的python和wxpython都是32位的(為什么要安裝32位,因?yàn)?2位的安裝包開發(fā)的程序到時(shí)候既可以在64位操作系統(tǒng)上運(yùn)行,也能在32位系統(tǒng)上運(yùn)行,但是如果安裝64位的話到時(shí)候只能在64位系統(tǒng)上運(yùn)行)。

1、安裝包連接如下,大家也可以去其他地方下載安裝包:Python和wxpython安裝包,都是32位的

http://xiazai.jb51.net/202401/yuanma/Python_Wxpython_jb51.rar

安裝好python和wxpython后就可以在window上開發(fā)界面程序了。

1.1首先需要安裝pywin32

2、如果此時(shí)你的界面程序已經(jīng)開發(fā)完成,我們就開始怎么打包整個(gè)工程為可執(zhí)行程序吧

2.1 首先需要安裝pywin32

但是我們電腦可能基本都沒有安裝pip,所以我們繼續(xù)安裝pip(pip的安裝包和pywin32的安裝包的連接如下:http://xiazai.jb51.net/202401/yuanma/Pywinpip_jb51.rar) 
下載下來(lái)后,將pip的安裝包解壓到C盤,然后命令行進(jìn)入到pip目錄,如下圖所示:

然后執(zhí)行命令:python setup.py install 
等待pip安裝完成,此時(shí)pip已經(jīng)安裝完成,但是此時(shí)輸入pip命令找不到,原因是還需要配置環(huán)境變量,在環(huán)境變量path下面添加C:\Python27;C:\Python27\Scripts,入下圖所示,環(huán)境變量之間需要用分號(hào)隔開,注意是英文的分號(hào)兒不是中文的分號(hào):

點(diǎn)擊確定后重新進(jìn)入cmd控制臺(tái)就可以使用pip命令了
然后我們就用pip來(lái)安裝pyinstaller,進(jìn)入cmd控制臺(tái)輸入如下命令:pip install pyinstaller
等待安裝完成后,pyinstaller就安裝完成了

你可以在命令行敲命令pyinstaller檢測(cè)是否安裝成功,不成功的話運(yùn)行起來(lái)會(huì)提示命令不存在不是內(nèi)部命令這個(gè)也是需要跟你安裝的wxpython和python的對(duì)應(yīng)起來(lái),要么都是63位的,要么都是32位,切記必須一致,我這次用的是32位的,所以pywin32也需要32位的。(安裝pywin32的作用是為后面安裝pyinstaller提供依賴包)

2.3然后此時(shí)我們就可以使用pyinstaller命令來(lái)打包我們開發(fā)好的python工程了

具體步驟如下:
首先介紹哈pyinstaller的參數(shù)
-F 表示生成單個(gè)可執(zhí)行文件
-w 表示去掉控制臺(tái)窗口,這在GUI界面時(shí)非常有用。不過(guò)如果是命令行程序的話那就把這個(gè)選項(xiàng)刪除吧!
-p 表示你自己自定義需要加載的類路徑,一般情況下用不到
-i 表示可執(zhí)行文件的圖標(biāo)

我這次沒有用的第三方的庫(kù)或者包,所以參數(shù)-p我就不需要用了
我這里詳細(xì)說(shuō)哈怎么打包工程,工程包括圖片啊,數(shù)據(jù)庫(kù)文件夾之類的怎么打包,單個(gè)的打包我就不說(shuō)了。
A:首先在cmd命令行進(jìn)入你程序的目錄內(nèi),假設(shè)你的python入口文件是main.py文件,然后進(jìn)入執(zhí)行打包命令:pyinstaller -w -F main.py

打包成功后,在該工程目錄下面會(huì)多兩個(gè)文件夾,一個(gè)build,一個(gè)dist,然后我們的exe文件就在dist目錄下面,名字為main.exe

執(zhí)行完成后如果你工程下面還有好幾個(gè)目錄的話此時(shí)exe是運(yùn)行不成功的,需要修改spec文件,假設(shè)你還有文件icon文件夾存放圖片和database文件夾存放數(shù)據(jù)庫(kù)
B:在工程項(xiàng)目里執(zhí)行完打包命令后會(huì)生成一個(gè)文件叫做main.spec,用任何一個(gè)文本編輯工具打開這個(gè)文件,樣本如下

# -*- mode: python -*-
block_cipher = None
a = Analysis(['main.py'],
             pathex=['C:\\Users\\jelly\\Desktop \\DataClean'],
             binaries=[],
             datas=[],
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          [],
          name='main',
          debug=False,
          strip=False,
          upx=True,
          runtime_tmpdir=None,
          console=False )

修改如下,修改的操作就是添加了你的database文件夾和icon文件夾,然后保存

# -*- mode: python -*-
block_cipher = None
a = Analysis(['main.py'],
             pathex=['C:\\Users\\jelly\\Desktop \\DataClean'],
             binaries=[],
             datas=[],
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)
dict_treeicon = Tree("C:\\Users\\jelly\\Desktop \\DataClean\\icon",prefix="icon")
a.datas += dict_treeicon
dict_treebase = Tree("C:\\Users\\jelly\\Desktop\\ DataClean\\database",prefix="database")
a.datas += dict_treebase
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          [],
          name='main',
          debug=False,
          strip=False,
          upx=True,
          runtime_tmpdir=None,
          console=False )

然后保存退出再在命令行執(zhí)行命令:pyinstaller mian.spec
執(zhí)行此命令后你的exe程序已經(jīng)重新生成過(guò)一次,你回看到此時(shí)exe的大小比之前的要大,因?yàn)榇虬四莾蓚€(gè)文件夾的內(nèi)容進(jìn)去,此時(shí)你再去執(zhí)行exe文件就可以正常運(yùn)行了

到此這篇關(guān)于Windows環(huán)境打包python工程為可執(zhí)行程序的詳細(xì)過(guò)程的文章就介紹到這了,更多相關(guān)python打包可執(zhí)行程序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python實(shí)現(xiàn)App自動(dòng)簽到領(lǐng)取積分功能

    Python實(shí)現(xiàn)App自動(dòng)簽到領(lǐng)取積分功能

    這篇文章主要介紹了Python實(shí)現(xiàn)App自動(dòng)簽到領(lǐng)取積分功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-09-09
  • 淺談Python中的模塊

    淺談Python中的模塊

    這篇文章主要介紹了Python中的模塊相關(guān)知識(shí),文中代碼非常詳細(xì),供大家參考和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • Python OrderedDict的使用案例解析

    Python OrderedDict的使用案例解析

    這篇文章主要介紹了Python OrderedDict的使用案例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Python機(jī)器學(xué)習(xí)NLP自然語(yǔ)言處理基本操作之命名實(shí)例提取

    Python機(jī)器學(xué)習(xí)NLP自然語(yǔ)言處理基本操作之命名實(shí)例提取

    自然語(yǔ)言處理(?Natural?Language?Processing,?NLP)是計(jì)算機(jī)科學(xué)領(lǐng)域與人工智能領(lǐng)域中的一個(gè)重要方向。它研究能實(shí)現(xiàn)人與計(jì)算機(jī)之間用自然語(yǔ)言進(jìn)行有效通信的各種理論和方法
    2021-11-11
  • 使用Python實(shí)現(xiàn)MapReduce的示例代碼

    使用Python實(shí)現(xiàn)MapReduce的示例代碼

    MapReduce是一個(gè)用于大規(guī)模數(shù)據(jù)處理的分布式計(jì)算模型,最初由Google工程師設(shè)計(jì)并實(shí)現(xiàn)的,Google已經(jīng)將完整的MapReduce論文公開發(fā)布了,本文給大家介紹了使用Python實(shí)現(xiàn)MapReduce的示例代碼,需要的朋友可以參考下
    2024-05-05
  • Python代碼實(shí)現(xiàn)為PDF添加頁(yè)碼(附詳細(xì)教程)

    Python代碼實(shí)現(xiàn)為PDF添加頁(yè)碼(附詳細(xì)教程)

    在處理合同、報(bào)告、論文、技術(shù)文檔等 PDF 時(shí),給頁(yè)面添加頁(yè)碼幾乎是必備功能,本文將介紹如何使用 Spire.PDF for Python 這個(gè)強(qiáng)大的庫(kù),通過(guò)簡(jiǎn)單的代碼為 PDF 文件自動(dòng)添加 中文頁(yè)碼 ,希望對(duì)大家有所幫助
    2026-05-05
  • 利用python批量檢查網(wǎng)站的可用性

    利用python批量檢查網(wǎng)站的可用性

    當(dāng)大家的站點(diǎn)越來(lái)越來(lái)越多的時(shí)候會(huì)發(fā)現(xiàn)管理起來(lái)也挺復(fù)雜的,所以這篇文章給大家分享下利用python批量檢查網(wǎng)站的可用性的功能,對(duì)大家管理網(wǎng)站具有很實(shí)用的價(jià)值,有需要的朋友可以參考借鑒。
    2016-09-09
  • 如何使用Python處理HDF格式數(shù)據(jù)及可視化問(wèn)題

    如何使用Python處理HDF格式數(shù)據(jù)及可視化問(wèn)題

    這篇文章主要介紹了如何使用Python處理HDF格式數(shù)據(jù)及可視化問(wèn)題,本文通過(guò)實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Python NumPy灰度圖像的壓縮原理講解

    Python NumPy灰度圖像的壓縮原理講解

    在本篇文章里小編給大家整理的是一篇關(guān)于Python NumPy灰度圖像的壓縮原理講解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。
    2021-08-08
  • python判斷計(jì)算機(jī)是否有網(wǎng)絡(luò)連接的實(shí)例

    python判斷計(jì)算機(jī)是否有網(wǎng)絡(luò)連接的實(shí)例

    今天小編就為大家分享一篇python判斷計(jì)算機(jī)是否有網(wǎng)絡(luò)連接的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12

最新評(píng)論

绥滨县| 本溪市| 焉耆| 光山县| 莱芜市| 临湘市| 绥阳县| 廉江市| 廉江市| 舒兰市| 靖西县| 武功县| 贵州省| 长岭县| 浦北县| 运城市| 烟台市| 双鸭山市| 察雅县| 南康市| 开鲁县| 息烽县| 崇仁县| 河源市| 阿合奇县| 兰溪市| 松江区| 休宁县| 涞源县| 玛纳斯县| 鹿泉市| 酉阳| 蛟河市| 浠水县| 吉首市| 丹东市| 大理市| 兴国县| 阳西县| 平泉县| 比如县|