欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

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

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

1.1首先需要安裝pywin32

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

2.1 首先需要安裝pywin32

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

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

點擊確定后重新進入cmd控制臺就可以使用pip命令了
然后我們就用pip來安裝pyinstaller,進入cmd控制臺輸入如下命令:pip install pyinstaller
等待安裝完成后,pyinstaller就安裝完成了

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

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

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

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

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

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

# -*- 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)重新生成過一次,你回看到此時exe的大小比之前的要大,因為打包了那兩個文件夾的內(nèi)容進去,此時你再去執(zhí)行exe文件就可以正常運行了

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

相關(guān)文章

  • python 爬蟲請求模塊requests詳解

    python 爬蟲請求模塊requests詳解

    這篇文章主要介紹了python 爬蟲請求模塊requests詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • Python爬蟲urllib和requests的區(qū)別詳解

    Python爬蟲urllib和requests的區(qū)別詳解

    這篇文章主要介紹了Python爬蟲urllib和requests的區(qū)別詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • 使用python讀取CSV文件時遇到編碼問題解決方案

    使用python讀取CSV文件時遇到編碼問題解決方案

    這篇文章主要介紹了用python讀取CSV文件時遇到編碼問題,本文給大家分享最優(yōu)解決方案,通過使用csvkit,它使用自動檢測適當(dāng)?shù)木幋a和解碼,需要的朋友可以參考下
    2023-08-08
  • Python OpenGL繪制一場煙花盛會

    Python OpenGL繪制一場煙花盛會

    正值新春佳節(jié),小編今天為大家?guī)砹擞肞ython OpenGL繪制的一場煙花盛會,文中的實現(xiàn)步驟講解詳細(xì),感興趣的小伙伴可以跟隨小編一起動手試一試
    2022-02-02
  • Python基于pygame實現(xiàn)的彈力球效果(附源碼)

    Python基于pygame實現(xiàn)的彈力球效果(附源碼)

    這篇文章主要介紹了Python基于pygame實現(xiàn)的彈力球效果,涉及pygame圖形動態(tài)操作的相關(guān)的技巧,并附帶了完整的源碼供讀者下載參考,需要的朋友可以參考下
    2015-11-11
  • Python隨機生成帶特殊字符的密碼

    Python隨機生成帶特殊字符的密碼

    這篇文章主要介紹了Python隨機生成帶特殊字符的密碼的相關(guān)資料,需要的朋友可以參考下
    2016-03-03
  • Python快速實現(xiàn)分列轉(zhuǎn)到行的示例代碼

    Python快速實現(xiàn)分列轉(zhuǎn)到行的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用Python快速實現(xiàn)分列轉(zhuǎn)到行的效果,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)一下
    2023-03-03
  • 利用Python實現(xiàn)斐波那契數(shù)列的方法實例

    利用Python實現(xiàn)斐波那契數(shù)列的方法實例

    這篇文章主要給大家介紹了關(guān)于如何利用Python實現(xiàn)斐波那契數(shù)列的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Pytorch中TensorBoard及torchsummary的使用詳解

    Pytorch中TensorBoard及torchsummary的使用詳解

    這篇文章主要介紹了Pytorch中TensorBoard及torchsummary的使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • 基于Python的圖像數(shù)據(jù)增強Data Augmentation解析

    基于Python的圖像數(shù)據(jù)增強Data Augmentation解析

    這篇文章主要介紹了基于Python的圖像數(shù)據(jù)增強Data Augmentation解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08

最新評論