Pyinstaller打包Django项目
1. 安裝pyinstaller
pip install pyinstaller2. 介 紹
PyInstaller讀取您編寫的 Python 腳本。它會分析您的代碼以發(fā)現(xiàn)您的腳本需要執(zhí)行的所有其他模塊和庫。然后它收集所有這些文件的副本——包括活動的 Python 解釋器!– 并將它們與您的腳本放在一個文件夾中,或者可以選擇放在一個可執(zhí)行文件中。
對于絕大多數(shù)程序,這可以通過一個簡短的命令來完成,
pyinstaller myscript.py或添加一些選項,例如作為單文件可執(zhí)行文件的窗口應(yīng)用程序,
pyinstaller --onefile --windowed myscript.py您將捆綁包作為文件夾或文件分發(fā)給其他人,他們可以執(zhí)行您的程序。對于您的用戶來說,該應(yīng)用程序是獨立的。他們不需要安裝任何特定版本的 Python 或任何模塊。他們根本不需要安裝 Python。
3. 查找程序需要的文件
您的腳本還需要哪些其他模塊和庫才能運行?(這些有時被稱為它的“依賴關(guān)系”。)
PyInstaller 會查找 import 腳本中的所有語句。它會找到導(dǎo)入的模塊并在其中查找 import 語句,以此類推,直到它擁有腳本可能使用的完整模塊列表。
某些 Python 腳本以PyInstaller無法檢測到的方式導(dǎo)入模塊:例如,通過使用__import__()具有可變數(shù)據(jù)的函數(shù)、使用imp.find_module()或sys.path在運行時操作值。如果您的腳本需要PyInstaller不知道的文件,您必須幫助它:
- 可以編輯 .spec 文件。 這是PyInstaller在您第一次為腳本運行它時編寫的規(guī)范文件。 在規(guī)范文件中,您可以告訴PyInstaller關(guān)于您的腳本所特有的代碼模塊。
4. 使用 Pyinstaller
4.1 制作 .spec 文件
進入項目目錄,執(zhí)行命令:
pyi-makespec -option manage.pyoption:
-
-D, --onedir:創(chuàng)建一個包含可執(zhí)行文件的單文件夾包(默認(rèn))
-
-F, --onefile:創(chuàng)建一個只生成一個 .exe 文件 的包。
-
–specpath DIR:用于存儲生成的規(guī)范文件的文件夾(默認(rèn):當(dāng)前目錄)
-
-n NAME, --name NAME:分配給捆綁的應(yīng)用程序和規(guī)范文件的名稱(默認(rèn)值:第一個腳本的基本名稱)
例如:
pyi-makespec -F manage.py在項目路徑下,會生成一個 .spec 文件 .
# -*- mode: python ; coding: utf-8 -*-block_cipher = Nonea = Analysis(['manage.py'],pathex=['D:\\coding\\spider_django'],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,[],exclude_binaries=True,name='manage',debug=False,bootloader_ignore_signals=False,strip=False,upx=True,console=True ) coll = COLLECT(exe,a.binaries,a.zipfiles,a.datas,strip=False,upx=True,upx_exclude=[],name='manage')4.2 修改 .spec 文件
在遇到 隱式導(dǎo)包(相關(guān)依賴),pyinstaller 無法識別的時候,可以將缺少的模塊名添加到 .spec 文件中的 hiddenimports=[] 列表中。例如:
hiddenimports=[‘缺少的模塊名’],幸運的是我這次在打包的時候,雖然有些警告,但是不影響運行。所以沒有修改 .spec 文件。
5. 生成 .exe 文件
執(zhí)行下面命令:
pyinstaller manage.spec會生成build( 在build文件夾中生成一些日志文件以及工作文件 )、dist( 在dist文件夾中的是已經(jīng)打包好的文件 ) 兩個文件,
.exe 就在 dist 文件夾下。
6. 命令運行項目
進入dist文件(manage.exe文件同級目錄下),cmd打開終端,運行下面命令:
manage.exe runserver --noreload7. 運行 .exe 文件
再創(chuàng)建一個 .py 文件(用來運行項目的腳本) ——> run.py
import osos.system('manage.exe runserver --noreload')input()再將 run.py 腳本打包。
pyi-makespec -F run.py # 生成.spec文件pyinstaller run.spec # 打包生成run.exe 文件雙擊run.exe 文件即可啟動項目 # 在運行時,要注意將run.exe文件和manage.exe 文件在同級目錄下,否則會報錯“找不到manage.exe文件”。總結(jié)
以上是生活随笔為你收集整理的Pyinstaller打包Django项目的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 统计学基本知识四
- 下一篇: Linux学习之如何在物理机上安装Lin