天天看點

Django項目windows上開發,虛拟機上調通打包,生産環境解壓即用

linux上部署Django項目

 使用自動生成的這個資料庫

Django項目windows上開發,虛拟機上調通打包,生産環境解壓即用

壓縮上傳

Django項目windows上開發,虛拟機上調通打包,生産環境解壓即用

 解壓運作,不可以

把虛拟環境也打包上傳

Django項目windows上開發,虛拟機上調通打包,生産環境解壓即用

不行啊,解釋器作業系統不一緻,不能用

Django項目windows上開發,虛拟機上調通打包,生産環境解壓即用
Django項目windows上開發,虛拟機上調通打包,生産環境解壓即用

編譯部分過程

已編譯安裝好并且能進入

Django項目windows上開發,虛拟機上調通打包,生産環境解壓即用

 将現有的site-package備份,用windows傳上來的直接替換

現在有Djongo了,但是還報錯

從這裡下載下傳一個sqlite源碼包:https://www.sqlite.org/download.html

編譯安裝到sqlite3目錄下

[root@mcw1 /opt]$ ls sqlite

sqlite3/ sqlite-autoconf-3370000/ sqlite-autoconf-3370000.tar.gz

備份并修改python源碼包中的setup檔案

[root@mcw1 /opt]$ grep sqlite -C 5 Python-3.6.6/setup.py

if db_setup_debug: print("db: no appropriate library found")

在setup檔案中添加sqlite編譯安裝的目錄檔案資訊。然後重新編譯安裝python3.6

Django項目windows上開發,虛拟機上調通打包,生産環境解壓即用

 重新編譯安裝python3.6之後,繼續運作任務

報錯:

解決方法:将剛剛編譯安裝好的python3.6.6的site-package目錄備份,然後用windows的pycharm項目使用的解釋器中的site-package目錄,直接複制過去替代原來的

運作程式

Django項目windows上開發,虛拟機上調通打包,生産環境解壓即用

 通路頁面

Django項目windows上開發,虛拟機上調通打包,生産環境解壓即用

 安裝上面的報錯資訊提示,修改添加項目配置,允許本機ip通路

Django項目windows上開發,虛拟機上調通打包,生産環境解壓即用

然後再次運作項目

Django項目windows上開發,虛拟機上調通打包,生産環境解壓即用

 至少能通路到頁面了

Django項目windows上開發,虛拟機上調通打包,生産環境解壓即用

 将編譯安裝在/opt/下的python環境,sqlite3,以及我們的項目目錄都傳到mcw02主機上。看複制檔案是否就能實作djonge項目在其它主機運作。

Django項目windows上開發,虛拟機上調通打包,生産環境解壓即用

 将項目複制到其它主機,修改主機ip配置,但是無法運作起項目來

sqlie資料庫,貌似是不用起程序的,這裡編譯安裝好就行,連接配接的庫也不是這裡。而且項目已經連接配接的資料庫,是從pycharm那裡運作項目時自動生成的那個sqlite3資料庫。還在項目的根目錄下,并且能正常使用。

Django項目windows上開發,虛拟機上調通打包,生産環境解壓即用

之前上面那個問題解決方法:備份源碼,并修改源碼,支援目前版本sqlite

Django項目windows上開發,虛拟機上調通打包,生産環境解壓即用

 檢視到報錯位置有個檢查版本的函數,原來是3,9,0比較。而我的sqlite版本是3.7的,是以我就改了版本比較數為3,3,0.這樣就不會因為版本低而無法運作項目了。或許你可以去重新編譯安裝sqlite版本為3.9以上,但是不隻是花時間,而且我自己也沒有在官網找到這個版本的包,我3.7已經是下載下傳的最新版本sqlite了。

修改以後,在mcw02主機上重新運作項目,正常運作

Django項目windows上開發,虛拟機上調通打包,生産環境解壓即用

 然後頁面通路遷移到mcw02主機的項目,成功通路。至此,完成了将項目從windows上移到linux上,又從linux上移到到其它linux上。至于為什麼要再從linux上移到其它linux上,這是因為生産環境我們盡量不弄亂它的環境。而這裡我們可用在windows上開發,在虛拟機上調試好三個目錄,能正常運作,然後可以打包直接去生産上解壓運作,隻是占三個目錄,并不會影響到其它目錄或者部署的東西到其它目錄下。互不幹擾。如果python是用虛拟環境的方式,那麼需要使用指令建立虛拟環境,暫時對這個沒深入研究,害怕建立虛拟環境影響到其它程式使用python,或者自己弄自己的虛拟環境,不小心把其它的虛拟環境也弄壞了,而這個編譯安裝的python,獨自有自己的目錄,修改啥的也對其它程式影響小很多;如果sqlite使用的是mysql,那麼需要起一個mysql程序,這樣會占用資源比較多,而sqlie卻沒有起程序,就在那個目錄下,對其它程式影響小

Django項目windows上開發,虛拟機上調通打包,生産環境解壓即用

如果是編譯安裝的python和 sqlite等,編譯安裝指定某個目錄後,直接打包目錄,不隻是能跨主機,也是能跨目錄的,不是非要在編譯安裝的目錄才能使用

比如下面這個,python3和sqlite都是編譯安裝到/opt目錄下的,但是直接打包放到别的目錄或者别的主機,照樣可以運作程式

Django項目windows上開發,虛拟機上調通打包,生産環境解壓即用
Django項目windows上開發,虛拟機上調通打包,生産環境解壓即用