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

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

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

一、現(xiàn)狀

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

是的,這是正常的情況。

往往很多場景,我們面對的就不是一個正常的情況。正常的情況下一切環(huán)境的問題都不是問題,因為有運維的伙伴幫我們處理好了所有環(huán)境的問題,從Python特定版本的安裝,到特定依賴庫的安裝,再到服務的配置。一切都不需要操心。

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

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

  • 安裝Python(基本不會出問題)
  • pip安裝依賴庫(非常容易出問題)
  • 安裝依賴的第三方軟件包(非常容易出問題)

很多想體驗一下 MrDoc 的小伙伴, 直接就死在了第二步 ,各種報錯無所適從。

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

怎么辦呢? 能不能讓Python編寫的Web項目像 PHP 或GO 語言編寫的Web服務一樣可以直接啟動呢?

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

二、打包

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

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

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

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

就會得到一個dist文件夾,里面包含了運行Django項目的所有文件,我們打開命令行界面,使用xxx.exe文件就可以達到像正常使用:

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

一樣的效果。比如運行runserver服務:

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

但是, 很大概率是運行不起來的,報錯的信息,不是缺少模塊,就是缺少靜態(tài)文件。

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

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

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

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

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

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

接著,在hidedenimports列表中, 將Django項目的應用模塊路徑也添加進去。 可以根據(jù)每次生成的報錯來一個一個添加,但是那樣太浪費時間了,還不如直接都添加進去。

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

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

等待一會兒,整個Django項目就打包好了,其完整的打包文件如下所示:

三、效果

打包好之后,我們打開命令行界面,輸入命令:

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

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

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

為了方便使用,我們還可以寫一個bat腳本,雙擊即可啟動它,免去打開命令行界面輸入命令的繁瑣:

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

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

總結(jié)

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

相關(guān)文章

  • tensorflow實現(xiàn)簡單邏輯回歸

    tensorflow實現(xiàn)簡單邏輯回歸

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

    pandas 選擇某幾列的方法

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

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

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

    Python設計模式之迭代器模式原理與用法實例分析

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

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

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

    selenium+python實現(xiàn)自動化登錄的方法

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

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

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

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

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

    你應該知道的python列表去重方法

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

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

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

最新評論

丰城市| 马鞍山市| 宝清县| 陇西县| 分宜县| 信宜市| 云阳县| 仲巴县| 顺昌县| 彝良县| 若尔盖县| 南溪县| 石门县| 老河口市| 田林县| 双城市| 醴陵市| 远安县| 南投市| 上思县| 黑龙江省| 涟源市| 沙湾县| 德化县| 白玉县| 耿马| 郎溪县| 仁怀市| 鲁山县| 张家口市| 班戈县| 德格县| 滁州市| 巴中市| 遂平县| 南宁市| 河池市| 皮山县| 廉江市| 灌云县| 璧山县|