RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

【Python】如何將Python腳本打包成exe可執(zhí)行文件

嵌入式物聯(lián)網(wǎng)開發(fā) ? 來源:嵌入式物聯(lián)網(wǎng)開發(fā) ? 作者:嵌入式物聯(lián)網(wǎng)開發(fā) ? 2022-08-18 12:40 ? 次閱讀

?

相信大家也有過這樣的困惑,本來已經(jīng)使用Python寫好了腳本代碼,又不想公開代碼邏輯,但又要給別人使用這些功能?

這可怎么辦呢?

有沒有什么辦法,可以將Python腳本打包成一個exe文件,這樣發(fā)布的時候,我只需要提交一個exe文件,別人只要雙擊打開就能使用我的功能,而我又不需要公開代碼,且不一舉兩得?

答案肯定是有的,請看下文分解。


這里我隨意編寫了一個Python腳本作為例子來介紹,功能很簡單,就是每秒鐘輸出一個索引值,值是遞加1的,代碼如下:

import time

index = 1

print('start running')

for index in range(1,1000):
	print(index)
	index = index + 1
	time.sleep(1)

print('stop running ...')
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

使用Python命令行運行的結果如下:


那么我們使用工具把這個Python代碼打包成一個exe文件。

這里需要用到一個Python的工具包,交Pyinstaller,我們使用以下命令就可以安裝它。

pip install pyinstaller
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

如下所示:(黃色字體提示pip有新版本要更新,可以不用管他)

提示安裝成功后,輸入下面的命令,有正常輸出表示pyinstaller安裝成功了。

pyinstaller.exe --help
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

下面我們就開始使用這個工具將python腳本打包成exe文件。

首先,我們進到Python腳本文件所在的目錄,如下:(我的是powershell命令行環(huán)境)

接著使用命令開始打包Python腳本,交互輸出log如下所示:

PS Z:win_share_workspacetest_sharetest_python2exe> pyinstaller.exe -F .running.py
179 INFO: PyInstaller: 4.5.1
180 INFO: Python: 3.7.8
188 INFO: Platform: Windows-10-10.0.19041-SP0
316 INFO: wrote Z:win_share_workspacetest_sharetest_python2exerunning.spec
501 INFO: UPX is not available.
1113 INFO: Extending PYTHONPATH with paths
['Z:\win_share_workspace\test_share\test_python2exe',
 'Z:\win_share_workspace\test_share\test_python2exe']
6010 INFO: checking Analysis
6047 INFO: Building Analysis because Analysis-00.toc is non existent
6048 INFO: Initializing module dependency graph...
6119 INFO: Caching module graph hooks...
6148 INFO: Analyzing base_library.zip ...
13118 INFO: Processing pre-find module path hook distutils from 'c:\users\redtea\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks\pre_find_module_path\hook-distutils.py'.
13120 INFO: distutils: retargeting to non-venv dir 'c:\users\redtea\appdata\local\programs\python\python37\lib'
15205 INFO: Caching module dependency graph...
16314 INFO: running Analysis Analysis-00.toc
16322 INFO: Adding Microsoft.Windows.Common-Controls to dependent assemblies of final executable
  required by c:usersredteaappdatalocalprogramspythonpython37python.exe
18942 INFO: Analyzing Z:win_share_workspacetest_sharetest_python2exerunning.py
19151 INFO: Processing module hooks...
19153 INFO: Loading module hook 'hook-difflib.py' from 'c:\users\redtea\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks'...
19155 INFO: Loading module hook 'hook-distutils.py' from 'c:\users\redtea\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks'...
19157 INFO: Loading module hook 'hook-encodings.py' from 'c:\users\redtea\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks'...
20863 INFO: Loading module hook 'hook-heapq.py' from 'c:\users\redtea\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks'...
20865 INFO: Loading module hook 'hook-pickle.py' from 'c:\users\redtea\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks'...
20867 INFO: Loading module hook 'hook-sysconfig.py' from 'c:\users\redtea\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks'...
20869 INFO: Loading module hook 'hook-xml.py' from 'c:\users\redtea\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks'...
21563 INFO: Looking for ctypes DLLs
21564 INFO: Analyzing run-time hooks ...
21567 INFO: Including run-time hook 'c:\users\redtea\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth_pkgutil.py'
21636 INFO: Including run-time hook 'c:\users\redtea\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth_inspect.py'
21642 INFO: Looking for dynamic libraries
22600 INFO: Looking for eggs
22600 INFO: Using Python library c:usersredteaappdatalocalprogramspythonpython37python37.dll
22600 INFO: Found binding redirects:
[]
22748 INFO: Warnings written to Z:win_share_workspacetest_sharetest_python2exebuildrunningwarn-running.txt
23472 INFO: Graph cross-reference written to Z:win_share_workspacetest_sharetest_python2exebuildrunningxref-running.html
23842 INFO: checking PYZ
23921 INFO: Building PYZ because PYZ-00.toc is non existent
23921 INFO: Building PYZ (ZlibArchive) Z:win_share_workspacetest_sharetest_python2exebuildrunningPYZ-00.pyz
26078 INFO: Building PYZ (ZlibArchive) Z:win_share_workspacetest_sharetest_python2exebuildrunningPYZ-00.pyz completed successfully.
26806 INFO: checking PKG
26830 INFO: Building PKG because PKG-00.toc is non existent
26830 INFO: Building PKG (CArchive) PKG-00.pkg
48506 INFO: Building PKG (CArchive) PKG-00.pkg completed successfully.
48830 INFO: Bootloader c:usersredteaappdatalocalprogramspythonpython37libsite-packagesPyInstallerbootloaderWindows-64bitrun.exe
48830 INFO: checking EXE
48912 INFO: Building EXE because EXE-00.toc is non existent
48913 INFO: Building EXE from EXE-00.toc
49652 INFO: Copying icons from ['c:\users\redtea\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\bootloader\images\icon-console.ico']
50456 INFO: Writing RT_GROUP_ICON 0 resource with 104 bytes
50456 INFO: Writing RT_ICON 1 resource with 3752 bytes
50457 INFO: Writing RT_ICON 2 resource with 2216 bytes
50458 INFO: Writing RT_ICON 3 resource with 1384 bytes
50458 INFO: Writing RT_ICON 4 resource with 37019 bytes
50458 INFO: Writing RT_ICON 5 resource with 9640 bytes
50459 INFO: Writing RT_ICON 6 resource with 4264 bytes
50459 INFO: Writing RT_ICON 7 resource with 1128 bytes
52342 INFO: Updating manifest in Z:win_share_workspacetest_sharetest_python2exebuildrunningrun.exe.z10cqb8f
54272 INFO: Updating resource type 24 name 1 language 0
56760 INFO: Appending archive to EXE Z:win_share_workspacetest_sharetest_python2exedistrunning.exe
155327 INFO: Building EXE from EXE-00.toc completed successfully.
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

看到最后提示successfully,就表示打包成功了。生成的exew文件位于dist目錄,我們打開看看。

打包出來的文件還是畢竟大,簡單幾行代碼就達到了6MB,主要是因為它把一些Python的依賴庫也打包進來了,所以我們雙擊就可以運行,運行效果與Python命令行運行一模一樣。


好了,本期將Python腳本打包成exe文件的教程到這里就結束了,你學會了嗎?

更多實用教程,請關注我的主頁,謝謝大家。

?審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • exe
    exe
    +關注

    關注

    0

    文章

    110

    瀏覽量

    32380
  • python
    +關注

    關注

    56

    文章

    4792

    瀏覽量

    84627
  • 腳本
    +關注

    關注

    1

    文章

    389

    瀏覽量

    14858
收藏 人收藏

    評論

    相關推薦

    【實用開發(fā)工具】BAT腳本打包成exe可執(zhí)行文件

    【實用開發(fā)工具】BAT腳本打包成exe可執(zhí)行文件
    的頭像 發(fā)表于 08-21 19:51 ?2.6w次閱讀
    【實用開發(fā)工具】<b class='flag-5'>將</b>BAT<b class='flag-5'>腳本</b><b class='flag-5'>打包成</b><b class='flag-5'>exe</b><b class='flag-5'>可執(zhí)行文件</b>

    LabView生成可執(zhí)行文件EXE

    LabView生成可執(zhí)行文件EXE時,運行時出現(xiàn)ERROR8,創(chuàng)建暫時的LVSB資源文件是什么意思啊?????
    發(fā)表于 04-11 13:45

    【視頻分享】如何調(diào)試可執(zhí)行文件

    在LabVIEW中,經(jīng)常發(fā)現(xiàn)可執(zhí)行文件和源代碼執(zhí)行結果有出入。本視頻講解如何調(diào)試可執(zhí)行文件。在優(yōu)酷上面看到的關于如何調(diào)試可執(zhí)行文件視頻,感覺還是挺受益的,分享給大家!
    發(fā)表于 07-20 14:46

    關于生成可執(zhí)行文件的問題

    生成了一個可執(zhí)行文件,在打開.exe文件時,出現(xiàn)了如圖所示的錯誤,請問該怎么處理?
    發(fā)表于 01-29 16:19

    python文件如何打包成exe可執(zhí)行文件?

    python文件打包成exe可執(zhí)行文件前言  也許我們不一定是專業(yè)的程序員,但是我們?nèi)匀豢梢酝ㄟ^代碼提高我們的效率,盡量少加班,多陪陪媳婦。
    發(fā)表于 07-06 06:34

    如何將Python程序打包exe文件?有哪些步驟

    文章撰寫原因我們開發(fā)的腳本一般都會用到一些第三方包,可能別人也需要用到我們的腳本,如果我們將我們的xx.py文件發(fā)給他,他是不能直接用的,他還需要安裝python解釋器,甚至還要安裝我
    發(fā)表于 07-12 08:20

    如何利用Python實現(xiàn)打包exe文件?求過程

    pyton打包成exe命令有哪幾個?如何利用Python實現(xiàn)打包exe文件?
    發(fā)表于 07-12 08:04

    LabVIEW可執(zhí)行文件作為后臺進程運行

    是Application.exe ,其中Application.exe可執(zhí)行文件的名稱。HideRootWindow = True添加到.ini
    發(fā)表于 03-18 21:15

    K510跑python的opencv可行嗎?打包為linux可執(zhí)行文件能跑嗎?

    想了解一下K510跑python的opencv可行嗎?打包為linux可執(zhí)行文件能跑嗎?
    發(fā)表于 09-14 09:01

    用MDK生成bin格式的可執(zhí)行文件

    用MDK 生成bin 文件1用MDK 生成bin 文件Embest 徐良平在RV MDK 中,默認情況下生成*.hex 的可執(zhí)行文件,但是當我們要生成*.bin 的可執(zhí)行文件時怎么辦呢
    發(fā)表于 08-02 10:52 ?71次下載

    基于LabVIEW的可執(zhí)行文件調(diào)用的研究與實現(xiàn)

    LabVIEW 是美國NI 公司推出的一種基于G 語言的虛擬儀器軟件開發(fā)工具。在LabVIEW 開發(fā)的軟件中,用戶可能需要調(diào)用.exe 可執(zhí)行文件。本文結合實例詳細介紹了三種調(diào)用方法:通過Call
    發(fā)表于 08-14 11:42 ?65次下載

    了解在Linux下可執(zhí)行文件格式

    Linux下面,目標文件、共享對象文件可執(zhí)行文件都是使用ELF文件格式來存儲的。程序經(jīng)過編譯之后會輸出目標文件,然后經(jīng)過鏈接可以產(chǎn)生
    發(fā)表于 05-15 08:49 ?1923次閱讀

    CCES創(chuàng)建可執(zhí)行文件的操作流程

    本模塊介紹用CrossCore? Embedded Studio (CCES)創(chuàng)建可執(zhí)行文件的整個流程。涉及的主題包括使用新項目向?qū)?、配置系統(tǒng)和工具選項,以及構建過程。
    的頭像 發(fā)表于 07-11 06:06 ?3419次閱讀

    labview生成可執(zhí)行程序后vi都在同一路徑下嗎

    打包成一個單獨的可執(zhí)行文件或安裝程序,這些VI和資源文件在內(nèi)部被組織和引用,而不是作為單獨的物理文件存放在exe
    的頭像 發(fā)表于 09-04 17:06 ?592次閱讀

    labview怎么生成可執(zhí)行文件

    生成可執(zhí)行文件EXE)是LabVIEW程序開發(fā)中的一個重要步驟,它允許用戶LabVIEW項目打包成一個獨立的應用程序,便于在沒有安裝LabVIEW的計算機上運行。 1. 準備工作
    的頭像 發(fā)表于 09-04 17:07 ?957次閱讀
    RM新时代网站-首页