最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何打包Python Web項(xiàng)目實(shí)現(xiàn)免安裝一鍵啟動(dòng)的方法

 更新時(shí)間:2020年05月21日 15:03:37   作者:戀習(xí)Python  
這篇文章主要介紹了如何打包Python Web項(xiàng)目,實(shí)現(xiàn)免安裝一鍵啟動(dòng),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

一、現(xiàn)狀

Python 有諸多優(yōu)秀的 Web 開(kāi)發(fā)框架供我們使用,比如Django、Flask、Sanic。正常的情況下,我們基于這些 Web 框架開(kāi)發(fā)好了網(wǎng)站,最終都會(huì)使用 Nginx 搭配 uWSGI 或gunicorn 將其部署在 Linux 服務(wù)器上,這樣,用戶就可以通過(guò) 綁定的域名或 IP 地址訪問(wèn)。

是的,這是正常的情況。

往往很多場(chǎng)景,我們面對(duì)的就不是一個(gè)正常的情況。正常的情況下一切環(huán)境的問(wèn)題都不是問(wèn)題,因?yàn)橛羞\(yùn)維的伙伴幫我們處理好了所有環(huán)境的問(wèn)題,從Python特定版本的安裝,到特定依賴(lài)庫(kù)的安裝,再到服務(wù)的配置。一切都不需要操心。

但是,如果所有的這些問(wèn)題都需要自己操心呢?那可真是一個(gè)災(zāi)難性的問(wèn)題。 Docker的出現(xiàn)解決了一部分的問(wèn)題,但是對(duì)于完全小白而言,docker的安裝和使用,又成為了一個(gè)問(wèn)題。

州的先生在開(kāi)發(fā)MrDoc覓道文檔的時(shí)候,就遇到了這個(gè)問(wèn)題。如果要源碼安裝 MrDoc,那么需要:

  • 安裝Python(基本不會(huì)出問(wèn)題)
  • pip安裝依賴(lài)庫(kù)(非常容易出問(wèn)題)
  • 安裝依賴(lài)的第三方軟件包(非常容易出問(wèn)題)

很多想體驗(yàn)一下 MrDoc 的小伙伴, 直接就死在了第二步 ,各種報(bào)錯(cuò)無(wú)所適從。

有 MrDoc 交流群里的熱心伙伴制作了docker鏡像,這解決了一定的環(huán)境問(wèn)題,但是 對(duì)于真正零基礎(chǔ)的計(jì)算機(jī)小白而言,命令行還是自帶恐懼屬性。

怎么辦呢? 能不能讓Python編寫(xiě)的Web項(xiàng)目像 PHP 或GO 語(yǔ)言編寫(xiě)的Web服務(wù)一樣可以直接啟動(dòng)呢?

在互聯(lián)網(wǎng)上逛蕩了老半天,發(fā)現(xiàn)老伙計(jì)——PyInstaller可以實(shí)現(xiàn)這個(gè)功能。

二、打包

PyInstaller是Python中一個(gè)用于將Python程序打包為可執(zhí)行文件的第三方模塊。 州的先生之前經(jīng)常使用它將PyQt5編寫(xiě)的桌面圖形界面程序打包分發(fā)。來(lái)看看它在打包Web程序上的應(yīng)用。

PyInstaller官方提供了一個(gè)打包Django項(xiàng)目的文檔,其鏈接為: https://github.com/pyinstaller/pyinstaller/wiki/Recipe-Executable-From-Django

按照這個(gè)文檔,我們根據(jù)項(xiàng)目的具體情況,運(yùn)行下述命令:

<span><span style="font-size: 14px;">
pyinstaller --name=mysite mysite/manage.py
</span>
</span>

就會(huì)得到一個(gè)dist文件夾,里面包含了運(yùn)行Django項(xiàng)目的所有文件,我們打開(kāi)命令行界面,使用xxx.exe文件就可以達(dá)到像正常使用:

<span>
<span style="font-size: 14px;">
python manage.py
</span>
</span>

一樣的效果。比如運(yùn)行runserver服務(wù):

<span>
<span style="font-size: 14px;">
xxx.exe runserver
</span>
</span>

但是, 很大概率是運(yùn)行不起來(lái)的,報(bào)錯(cuò)的信息,不是缺少模塊,就是缺少靜態(tài)文件。

我們需要顯式地告訴PyInstaller,哪些包、哪些模塊、哪些文件需要一起打包進(jìn)去。

在上一次運(yùn)行 pyinstaller 命令之后,文件夾下會(huì)生成一個(gè) .spec后綴的配置文件 ,其實(shí)質(zhì)是一個(gè)Python文件,我們對(duì)其進(jìn)行修改。

<span>
<span style="font-size: 14px;">
import sys
</span>
</span>

<span>
<span style="font-size: 14px;">
sys.setrecursionlimit(5000)
</span>
</span>

在文件第3行的位置,添加上述2行代碼,用于 避免pyinstaller索引模塊層級(jí)的錯(cuò)誤 。

然后,在datas列表中, 將Django項(xiàng)目的靜態(tài)文件目錄、媒體文件目錄、以及其他使用到的文件目錄全都以元組的形式添加進(jìn)去。 這會(huì)讓PyInstaller直接將這些文件打包到最后生成的文件夾中。

接著,在hidedenimports列表中, 將Django項(xiàng)目的應(yīng)用模塊路徑也添加進(jìn)去。 可以根據(jù)每次生成的報(bào)錯(cuò)來(lái)一個(gè)一個(gè)添加,但是那樣太浪費(fèi)時(shí)間了,還不如直接都添加進(jìn)去。

修改好了之后,我們把之前生成的build目錄和dist目錄刪除,使用spec文件調(diào)用Pyinstaller命令:

<span>
<span style="font-size: 14px;">pyinstaller MrDoc.spec
</span>
</span>

等待一會(huì)兒,整個(gè)Django項(xiàng)目就打包好了,其完整的打包文件如下所示:

三、效果

打包好之后,我們打開(kāi)命令行界面,輸入命令:

<span>
<span style="font-size: 14px;">
mrdoc.exe runserver
</span>
</span>

就啟動(dòng)了Django Web網(wǎng)站,如下圖所示:

在瀏覽器上訪問(wèn): 127.0.0.1:8000 就可以看到我們的MrDoc覓道文檔了:

為了方便使用,我們還可以寫(xiě)一個(gè)bat腳本,雙擊即可啟動(dòng)它,免去打開(kāi)命令行界面輸入命令的繁瑣:

<span>
<span style="font-size: 14px;">
start ./mrdoc.exe runserver
</span>
</span>

這樣,一個(gè) 免安裝、一鍵啟動(dòng)的Django網(wǎng)站應(yīng)用 就打包制作完成了。

總結(jié)

到此這篇關(guān)于如何打包Python Web項(xiàng)目實(shí)現(xiàn)免安裝一鍵啟動(dòng)的方法的文章就介紹到這了,更多相關(guān)打包Python Web項(xiàng)目?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • tensorflow實(shí)現(xiàn)簡(jiǎn)單邏輯回歸

    tensorflow實(shí)現(xiàn)簡(jiǎn)單邏輯回歸

    邏輯回歸是一種分類(lèi)器模型,這篇文章主要介紹了tensorflow實(shí)現(xiàn)簡(jiǎn)單邏輯回歸,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • pandas 選擇某幾列的方法

    pandas 選擇某幾列的方法

    今天小編就為大家分享一篇pandas 選擇某幾列的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • Python編程快速上手——瘋狂填詞程序?qū)崿F(xiàn)方法分析

    Python編程快速上手——瘋狂填詞程序?qū)崿F(xiàn)方法分析

    這篇文章主要介紹了Python瘋狂填詞程序?qū)崿F(xiàn)方法,結(jié)合具體案例形式分析了Python填詞算法相關(guān)的文件讀寫(xiě)、正則匹配、數(shù)據(jù)遍歷等操作技巧,需要的朋友可以參考下
    2020-02-02
  • Python設(shè)計(jì)模式之迭代器模式原理與用法實(shí)例分析

    Python設(shè)計(jì)模式之迭代器模式原理與用法實(shí)例分析

    這篇文章主要介紹了Python設(shè)計(jì)模式之迭代器模式原理與用法,結(jié)合具體實(shí)例形式分析了迭代器模式的概念、原理、定義及使用方法,代碼注釋說(shuō)明簡(jiǎn)單易懂,需要的朋友可以參考下
    2019-01-01
  • python實(shí)現(xiàn)自動(dòng)登錄人人網(wǎng)并采集信息的方法

    python實(shí)現(xiàn)自動(dòng)登錄人人網(wǎng)并采集信息的方法

    這篇文章主要介紹了python實(shí)現(xiàn)自動(dòng)登錄人人網(wǎng)并采集信息的方法,涉及Python模擬登陸及正則匹配的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • selenium+python實(shí)現(xiàn)自動(dòng)化登錄的方法

    selenium+python實(shí)現(xiàn)自動(dòng)化登錄的方法

    這篇文章主要介紹了selenium+python實(shí)現(xiàn)自動(dòng)化登錄的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • Python修改IP地址的常見(jiàn)方法總結(jié)

    Python修改IP地址的常見(jiàn)方法總結(jié)

    在網(wǎng)絡(luò)編程中,可能會(huì)遇到需要修改IP地址的情況,Python提供了一些功能強(qiáng)大的庫(kù)和模塊,可以幫助我們實(shí)現(xiàn)IP地址的修改操作,本文將介紹幾種常見(jiàn)的方法,以及如何使用它們來(lái)修改IP地址,需要的朋友可以參考下
    2023-12-12
  • 使用Docker制作Python環(huán)境連接Oracle鏡像

    使用Docker制作Python環(huán)境連接Oracle鏡像

    這篇文章主要為大家介紹了使用Docker制作Python環(huán)境連接Oracle鏡像示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • 你應(yīng)該知道的python列表去重方法

    你應(yīng)該知道的python列表去重方法

    初學(xué)者經(jīng)常會(huì)遇到如何移除list中重復(fù)元素的問(wèn)題。 這個(gè)問(wèn)題在其他語(yǔ)言中可能需要for循環(huán)什么的,而在python中不用這樣,非常簡(jiǎn)單,下面來(lái)通過(guò)這篇文章主要介紹了關(guān)于python列表去重方法以及拓展,需要的朋友可以參考借鑒,一起來(lái)看看吧。
    2017-01-01
  • python?查看cpu的核數(shù)實(shí)現(xiàn)

    python?查看cpu的核數(shù)實(shí)現(xiàn)

    這篇文章主要介紹了python?查看cpu的核數(shù)的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05

最新評(píng)論

安徽省| 增城市| 大悟县| 称多县| 苍南县| 木里| 乌审旗| 泌阳县| 巴彦淖尔市| 新绛县| 股票| 乌什县| 桐城市| 墨竹工卡县| 西华县| 宜城市| 苏尼特右旗| 高雄县| 藁城市| 平舆县| 拉孜县| 乃东县| 江永县| 成安县| 汕头市| 新安县| 融水| 贵德县| SHOW| 富川| 九江县| 义马市| 玉树县| 米泉市| 井研县| 门源| 共和县| 勐海县| 太仆寺旗| 廉江市| 石阡县|