1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        最簡單的方式發(fā)布你的Python應(yīng)用

        共 3590字,需瀏覽 8分鐘

         ·

        2021-06-01 11:50

        ↑↑↑關(guān)注后"星標(biāo)"簡說Python

        人人都可以簡單入門Python、爬蟲、數(shù)據(jù)分析
         簡說Python推薦 
        來源:Python七號
        作者:somenzz

        記得之前看過一篇文章,說的是龍哥當(dāng)年準(zhǔn)備賣掉 foxmail,買方是雷軍,雷軍的意思是:就這,我也能寫。于是就沒有成交。

        我的感覺就是,程序員寫的軟件,要給不懂技術(shù)的人用才有價值,否則得到的就是:就這,我也能寫。

        我們不是龍哥,寫不出牛逼的 foxmail,但是寫個自動化的腳本還是可以的,即使是一個小小的腳本,只要能提供幫助,其他人也是有需求的。

        那么如何將你寫的程序發(fā)布給其他人用呢?

        我嘗試過一些常用的打包工具,py2exe,pyinstaller,這些工具有一些缺點:

        1. 不穩(wěn)定。明明我自己的電腦可以運行,放到其他電腦就會報錯閃退,提示系統(tǒng)缺少 xxx.dll 動態(tài)鏈接庫文件。

        2. 配置文件復(fù)雜。簡單的打包方式可能無法滿足需要,復(fù)雜一些的就要寫配置文件,有時明明寫好的配置文件,就是沒有生效。

        3. 打包文件大,啟動慢。這些工具并不會編譯成可執(zhí)行文件,而是將 Python 解釋器,依賴的三方庫一起打包,如果打包成一個文件,運行超慢,因為這些會一起加載進(jìn)內(nèi)存。

        還有一種方式就是編寫 Web 應(yīng)用程序,發(fā)布成 Web 站點、H5、微信小程序等形式,這個門檻就有點高了,你需要有一定的經(jīng)驗且熟悉 Web 開發(fā),還要購買服務(wù)器或者云產(chǎn)品。

        今天分享一下非常簡單可行的方式發(fā)布 Python 應(yīng)用程序,發(fā)布后用戶只需要雙擊一個文件就可以啟動你的應(yīng)用程序,不懂任何技術(shù)的人都會使用。

        具體的方法就是使用官網(wǎng)發(fā)布的嵌入式 Python 包,不過這個僅適用于 Windows,這也不是什么大不了的,大多數(shù)非程序員用的都是 Windows?!溉绻?Mac 請使用 py2app 來打包」

        訪問 www.python.org 下載 Windows embeddable package,如果你自己的電腦是 64 位的,就下載 64 位,如果要做的更通用些就用 32 位的,因為 64 位電腦可以運行 32 位的程序,反之則不行。

        這里我選擇 python-3.9.5,解壓后得到 python-3.9.5-embed-amd64 文件夾,這是一個免安裝的 Python 環(huán)境,隨便復(fù)制到其他 Windows 平臺都可以穩(wěn)定運行。進(jìn)入目錄,執(zhí)行 .\python,只要是標(biāo)準(zhǔn)庫都可以導(dǎo)入。

        不過在正式使用之前,我們還需要進(jìn)行兩點改造。

        安裝 pip 工具

        我們寫程序不可能只用標(biāo)準(zhǔn)庫,還要使用第三方庫,比如 requests,那么就要為 Python 環(huán)境配置 pip。

        1. 從這里下載 get-pip.py 文件
        https://bootstrap.pypa.io/get-pip.py
        1. 將 get-pip.py 存放在 python-3.9.5-embed-amd64 文件夾中,然后進(jìn)入該目錄執(zhí)行:
        .\python get-pip.py  --no-warn-script-location

        即可完成 pip 的安裝:

        此時 pip 已經(jīng)安裝在 Lib\site-packages 下。

        1. 使用 pip

        現(xiàn)在安裝 requests 并 import 測試。發(fā)現(xiàn)報了個錯,說找不到 pip。

        好,現(xiàn)在進(jìn)入 Python 解釋器環(huán)境,看下 Python 的搜索路徑 sys.path,發(fā)現(xiàn)并沒有 Lib\site-packages,那么們就添加它。

        1. 添加搜索路徑

        進(jìn)入 python-3.9.5-embed-amd64 文件夾,修改文件 python39._pth 文件

        修改之后內(nèi)容如下:

        python39.zip
        .
        ..
        # Uncomment to run site.main() automatically
        import site

        這里修改了兩個地方,一個是加入上級目錄 ..,另一個是取消注釋 import site。

        加入上級目錄是為了在該目錄之外存放一些自己寫的 Python 腳本,這樣目錄 python-3.9.5-embed-amd64 就可以保持獨立,不放入任何自己寫的腳本,免得 Python 環(huán)境相關(guān)的文件被污染。

        取消注釋 import site 會自動運行 site.main(),查看 Python 的 Lib/site.py 的源代碼就可以知道 site.main() 會將 Lib\site-packages 自動添加到 sys.path 中,當(dāng)然它的功能還不止這些,我們先知道這些就夠了。

        接下來再次查看 sys.path,發(fā)現(xiàn) Lib\site-packages 已經(jīng)在里面了:

        再次安裝 requests 并導(dǎo)入測試,成功:

        發(fā)布程序

        現(xiàn)在就可以寫代碼發(fā)布程序了,我這里寫好了一個腳本 main.py 獲取用戶輸入的文本,自動調(diào)用百度翻譯,返回翻譯的結(jié)果,內(nèi)容如下:

        import json
        import requests
        url='https://fanyi.baidu.com/sug'
        kw = input('請輸入待翻譯的文本:')
        kw = {
            'kw':kw
        }
        header = {
            'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36'
        }
        response = requests.post(url=url, data=kw, headers=header)
        response.raise_for_status
        response.encoding = response.apparent_encoding
        content_json = response.json()
        #默認(rèn)轉(zhuǎn)成ascii編碼,因此需要設(shè)置成false
        content = json.dumps(content_json,ensure_ascii=False)
        result = json.loads(content)
        print(result["data"])

        然后放在與 python-3.9.5-embed-amd64 文本夾并列的位置,考慮到有人不會打開命令窗口,我們還需要制作一個 bat 腳本文件,用戶雙擊這個文件就可以運行我們的程序,內(nèi)容如下:

        cmd.exe /K .\python-3.9.5-embed-amd64\python main.py

        這里 cmd 傳入 /K 參數(shù)是為了程序運行完成后不關(guān)閉命令窗口,這樣我們就可以看到程序返回了啥,不然直接唰的一下窗口就沒了。

        最終文件夾如下所示:

        現(xiàn)在將 main.py、雙擊運行.bat、python-3.9.5-embed-amd64 壓縮到一個文件夾 embed_python.7z,發(fā)送給需要的人,他解壓后,雙擊那個 bat 文件就可以運行你的程序了:

        壓縮后只有 10 MB 的大小,微信上就可以直接傳輸了,方便。

        如果你嫌上述的制作過程麻煩,可以直接使用我做好的嵌入式 Python 包,解壓后就可以直接使用,公眾號「簡說Python」回復(fù)「嵌入式」獲取。

        --END--


        推薦圖書

        圖書介紹Excel 2016函數(shù)與公式用大全完整詳盡的介紹了Excel函數(shù)公式的技術(shù)特點和應(yīng)用方法。全書從公式與函數(shù)基礎(chǔ)開始,逐步展開到查找引用、統(tǒng)計求和等常用函數(shù)應(yīng)用,以及數(shù)組公式、多維引用等

        ???????????????????

        掃碼即可加我微信

        老表朋友圈經(jīng)常有贈書/紅包福利活動


        學(xué)習(xí)更多:
        整理了我開始分享學(xué)習(xí)筆記到現(xiàn)在超過250篇優(yōu)質(zhì)文章,涵蓋數(shù)據(jù)分析、爬蟲、機器學(xué)習(xí)等方面,別再說不知道該從哪開始,實戰(zhàn)哪里找了

        優(yōu)秀的讀者都知道,“點贊”傳統(tǒng)美德不能丟 

        瀏覽 49
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            秋霞午夜毛片 | 美女18禁网站黄色在线看 | 黄片免费在线播放 | 大屌在线| 99视频免费观看 | 久久美乳视频 | 亚洲色图欧美日韩 | 91亚洲国产成人精品一区二三 | 97超碰小说| 肏逼影院 |