[原創(chuàng)]pyinstaller 打包Django 項目在外部IDC部署

背景

公司的內部項目需要部署在不通外網(wǎng)的外部IDC,對依賴包比較多的python 工程部署來說, 坑還是比較多的, 這里簡要記錄采坑過程;

0x0 將Django 項目整體打包成和執(zhí)行目錄

經篩選調研選擇使用pyinstaller, 需求是外部IDC CentOS7.2 部署前后端分離項目,前端只要打包靜態(tài)文件丟進nginx share 目錄就好了,后端是DRF, 使用編譯安裝的python3.6.3;
只測試了linux 版的pyinstaller;

1.安裝pyinstaller

pip install pyinstaller

坑1:

如果你的python3 是編譯安裝的, 編譯時參數(shù)沒指定 --enable-shared , 則無法使用,需要重新編譯,帶上這個參數(shù);

2. 對入口文件執(zhí)行:

pyi-makespec -D manage.py
# 編譯
pyinstaller manage.spec

會生成dist/manage , 所有依賴會統(tǒng)統(tǒng)打包到這個目錄, 運行使用:

./manage runserver 0.0.0.0:8000
坑2:

django 工程可能隱式import很多依賴,需要修改生成的manage.spec hiddenimport 數(shù)組, 需要根據(jù)報錯補進去,具體從setting.py 中查找;

坑3 : 一些讀取的文件和目錄會和源碼運行的路徑不一致,需要手動補上, 源碼中調整或根據(jù)運行方式做邏輯分支處理;
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容