版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第Pyinstaller打包工具的使用以及避坑目錄一、基本使用二、基本錯(cuò)誤處理1、當(dāng)運(yùn)行exe后出現(xiàn)提示:NomodulenamedXXX2、當(dāng)運(yùn)行出現(xiàn)報(bào)錯(cuò):UnicodeDecodeError:'gbk'codeccan'tdecodebyte0x80inposition658:illegalmultibyte3、當(dāng)運(yùn)行出現(xiàn)這種報(bào)錯(cuò):TemplateDoesNotExistat/index/4、項(xiàng)目缺少樣式css和js本篇博客主要介紹的是pyinstaller在windows下的基本使用和基礎(chǔ)避坑
在windows中使用pyinstaller工具打包時(shí)會(huì)出現(xiàn)一個(gè)問(wèn)題,在打包列表會(huì)看到這樣的警告信息:
django.core.exceptions.ImproperlyConfigured:CouldnotfindtheGDALlibrary(tried"gdal302","gdal301","gdal300","gdal204","gdal203","gdal202","gdal201","gdal20").IsGDALinstalledIfitis,trysettingGDAL_LIBRARY_PATHinyoursettings.collect_submodules:failedtoimport'django.contrib.gis.sitemaps'!
這種信息不予理會(huì)就好了。
一、基本使用
1、安裝pyinstall
#pipinstallpyinstaller
2、查找程序需要的文件
#制作.spec文件
#進(jìn)入項(xiàng)目目錄,執(zhí)行命令:(還有其它參數(shù):-F等,建議使用-D)
#-D會(huì)在當(dāng)前目錄下的dist目錄中生成文件夾,處理靜態(tài)文件時(shí)比較方便
#pyi-makespec-Dmanage.py
3、生成.exe文件
#在manage.spec同級(jí)目錄執(zhí)行
#pyinstallermanage.spec
4、進(jìn)入dist目錄運(yùn)行項(xiàng)目
#生成的exe可執(zhí)行文件runserver--noreload
#manage.exerunserver--noreload
二、基本錯(cuò)誤處理
1、當(dāng)運(yùn)行exe后出現(xiàn)提示:NomodulenamedXXX
出現(xiàn)原因:出現(xiàn)這種情況的原因主要是由于Django有些module不會(huì)自動(dòng)收集,需要手動(dòng)添加
解決辦法:打開(kāi)生成的后綴名為.spec的文件,在hiddenimports中添加報(bào)錯(cuò)中沒(méi)有的模塊
2、當(dāng)運(yùn)行出現(xiàn)報(bào)錯(cuò):UnicodeDecodeError:'gbk'codeccan'tdecodebyte0x80inposition658:illegalmultibyte
出現(xiàn)原因:主要是windows系統(tǒng)下gbk編碼的問(wèn)題
解決辦法:打開(kāi)報(bào)錯(cuò)信息上面一行提示的錯(cuò)誤文件并跳轉(zhuǎn)到提示的錯(cuò)誤行數(shù)上修改withopen(),在里面添加:encoding='utf-8'即可
Duringhandlingoftheaboveexception,anotherexceptionoccurred:
Traceback(mostrecentcalllast):
File"threading.py",line890,in_bootstrap
File"threading.py",line936,in_bootstrap_inner
File"traceback.py",line167,informat_exc
File"traceback.py",line121,informat_exception
File"traceback.py",line521,in__init__
File"traceback.py",line533,in_load_lines
File"traceback.py",line533,in_load_lines
File"traceback.py",line533,in_load_lines
[Previouslinerepeated2moretimes]
File"traceback.py",line531,in_load_lines
File"traceback.py",line285,inline
File"linecache.py",line16,ingetline
File"linecache.py",line47,ingetlines
File"linecache.py",line103,inupdatecache
File"PyInstaller\loader\pyimod03_importers.py",line299,inget_source
UnicodeDecodeError:'gbk'codeccan'tdecodebyte0xa6inposition11211:illegalmultibytesequence
上面是報(bào)錯(cuò)示例,找到"PyInstaller\loader\pyimod03_importers.py"文件,打開(kāi)并編譯第299行找到對(duì)應(yīng)位置添加:encoding='utf-8'(注:修改前先備份好備份,以免誤操作找不回)
3、當(dāng)運(yùn)行出現(xiàn)這種報(bào)錯(cuò):TemplateDoesNotExistat/index/
出現(xiàn)原因:TemplateDoesNotExist這個(gè)是因?yàn)闆](méi)有找到templates文件
解決辦法:根據(jù)錯(cuò)誤提示將templates文件添加至對(duì)應(yīng)的路徑下,刷新即可。
TemplateDoesNotExistat/index/
index/index.html
RequestMethod:GET
RequestURL::8000/index/
DjangoVersion:3.2.9
ExceptionType:TemplateDoesNotExist
ExceptionValue:
index/index.html
ExceptionLocation:django\template\loader.py,line19,inget_template
PythonExecutable:F:\Workspoace\PyWork\bookstore\dist\manage.exe
PythonVersion:3.7.8
PythonPath:
['C:\\Users\\ja\\AppData\\Local\\Temp\\_MEI25882\\base_library.zip',
'C:\\Users\\ja\\AppData\\Local\\Temp\\_MEI25882\\lib-dynload',
'C:\\Users\\ja\\AppData\\Local\\Temp\\_MEI25882']
Servertime:Tue,16Nov202503:13:35+0000
Template-loaderpostmortem
Djangotriedloadingthesetemplates,inthisorder:
Usingenginedjango:
django.template.loaders.filesystem.Loader:C:\Users\ja\AppData\Local\Temp\_MEI25882\templates\index\index.html(Sourcedoesnotexist)
django.template.loaders.app_directories.Loader:C:\Users\ja\AppData\Local\Temp\_MEI25882\django\contrib\admin\templates\index\index.html(Sourcedoesnotexist)
django.template.loaders.app_directories.Loader:C:\Users\ja\AppData\Local\Temp\_MEI25882\django\contrib\auth\templates\index\index.html(Sourcedoesnotexist)
上面這種示例把template文件夾復(fù)制下來(lái)放到C:\Users\ja\AppData\Local\Temp_MEI25882\下面即可
4、項(xiàng)目缺少樣式css和js
出現(xiàn)原因:Pyinstaller能找到templates(htmlfiles文件),但不能找到css和js文件
解決辦法:
在settings中配置django靜態(tài)文件收集
#STATIC_ROOT=os.path.join(BASE_DIR,'文件夾路徑')
靜態(tài)文件收集命令
#pythonmanage.pycollectstatic
然后在各個(gè)app的url中添加:
#static.static(settings.STATIC_URL,document_root=settings.STATIC_ROOT)
#這句話的意思就是將STATIC_ROOT目錄的靜態(tài)文件復(fù)制一份到網(wǎng)頁(yè)STATIC_URL路徑下
在.spec文件中修改datas,配置靜態(tài)文件打包:
#F:\Workspoace\PyWork\bookstore\statics要打包的css,js靜態(tài)文件地址相對(duì)應(yīng)打包到dist中的位置
#F:\Workspoace\PyWork\bookstore\templates要打包的html文件模板地址相對(duì)應(yīng)打包到dist中的位置
#datas=[(r'F:\Workspoace\PyWork\bookstore\statics',r'.\statics'),(r'F:\Workspoace\PyWork\bookstore\templates',r'.\templates')],
注:這里配置template打包上
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 統(tǒng)編版2025-2026學(xué)年語(yǔ)文四年級(jí)第一學(xué)期期末質(zhì)量檢測(cè)練習(xí)卷(含答案)
- 湖南省岳陽(yáng)市汨羅市2025-2026學(xué)年八年級(jí)上學(xué)期1月期末生物試題(無(wú)答案)
- 河南省駐馬店市泌陽(yáng)縣2025-2026學(xué)年八年級(jí)上學(xué)期1月期末考試歷史試卷答案
- 2025-2026學(xué)年一年級(jí)(上)期末游戲化測(cè)試語(yǔ)文試卷(附參考答案)
- 五年級(jí)題目及答案
- 文件筐測(cè)試題及答案
- 2026年小學(xué)語(yǔ)文模擬沖刺押題卷
- 誠(chéng)實(shí)做事的演講稿
- 冀教版三年級(jí)上冊(cè)數(shù)學(xué)第二單元-兩、三位數(shù)乘一位數(shù)-測(cè)試卷及答案(奪冠系列)
- 高中高二下學(xué)期地理期末考試試題答案解析
- 2026廣東廣州市海珠區(qū)住房和建設(shè)局招聘雇員7人筆試參考題庫(kù)及答案解析
- 云南師大附中2026屆高三1月高考適應(yīng)性月考卷英語(yǔ)(六)含答案
- 海南2025年中國(guó)熱帶農(nóng)業(yè)科學(xué)院橡膠研究所第一批招聘16人(第1號(hào))筆試歷年參考題庫(kù)附帶答案詳解
- 2025-2026人教版數(shù)學(xué)七年級(jí)上冊(cè)期末模擬試卷(含答案)
- 2026年九江市八里湖新區(qū)國(guó)有企業(yè)面向社會(huì)公開(kāi)招聘工作人員【48人】筆試參考題庫(kù)及答案解析
- 廣告行業(yè)法律法規(guī)與行業(yè)規(guī)范(標(biāo)準(zhǔn)版)
- 2025年CFA二級(jí)道德與專業(yè)標(biāo)準(zhǔn)題
- 2026年鄭州電力高等專科學(xué)校單招職業(yè)技能測(cè)試題庫(kù)新版
- 2026年八年級(jí)物理上冊(cè)期末考試試卷及答案(共四套)
- 節(jié)能與新能源汽車技術(shù)路線圖2.0
- 保育員配合教學(xué)培訓(xùn)工作指南
評(píng)論
0/150
提交評(píng)論