成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

[[399409]]

本文轉(zhuǎn)載自微信公眾號(hào)「Python七號(hào)」,作者somenzz。轉(zhuǎn)載本文請(qǐng)聯(lián)系Python七號(hào)公眾號(hào)。

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

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

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

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

我嘗試過(guò)一些常用的打包工具,py2exe,pyinstaller,這些工具有一些缺點(diǎn):

  1. 不穩(wěn)定。明明我自己的電腦可以運(yùn)行,放到其他電腦就會(huì)報(bào)錯(cuò)閃退,提示系統(tǒng)缺少 xxx.dll 動(dòng)態(tài)鏈接庫(kù)文件。
  2. 配置文件復(fù)雜。簡(jiǎn)單的打包方式可能無(wú)法滿(mǎn)足需要,復(fù)雜一些的就要寫(xiě)配置文件,有時(shí)明明寫(xiě)好的配置文件,就是沒(méi)有生效。
  3. 打包文件大,啟動(dòng)慢。這些工具并不會(huì)編譯成可執(zhí)行文件,而是將 Python 解釋器,依賴(lài)的三方庫(kù)一起打包,如果打包成一個(gè)文件,運(yùn)行超慢,因?yàn)檫@些會(huì)一起加載進(jìn)內(nèi)存。
  4. 還有一種方式就是編寫(xiě) Web 應(yīng)用程序,發(fā)布成 Web 站點(diǎn)、H5、微信小程序等形式,這個(gè)門(mén)檻就有點(diǎn)高了,你需要有一定的經(jīng)驗(yàn)且熟悉 Web 開(kāi)發(fā),還要購(gòu)買(mǎi)服務(wù)器或者云產(chǎn)品。

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

具體的方法就是使用官網(wǎng)發(fā)布的嵌入式 Python 包,不過(guò)這個(gè)僅適用于 Windows,這也不是什么大不了的,大多數(shù)非程序員用的都是 Windows。「如果是 Mac 請(qǐng)使用 py2app 來(lái)打包」

訪(fǎng)問(wèn) www.python.org 下載 Windows embeddable package,如果你自己的電腦是 64 位的,就下載 64 位,如果要做的更通用些就用 32 位的,因?yàn)?64 位電腦可以運(yùn)行 32 位的程序,反之則不行。

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

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

安裝 pip 工具

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

從這里下載 get-pip.py 文件

  1. https://bootstrap.pypa.io/get-pip.py 

將 get-pip.py 存放在 python-3.9.5-embed-amd64 文件夾中,然后進(jìn)入該目錄執(zhí)行:

  1. .\python get-pip.py  --no-warn-script-location 

即可完成 pip 的安裝:

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

使用 pip

現(xiàn)在安裝 requests 并 import 測(cè)試。發(fā)現(xiàn)報(bào)了個(gè)錯(cuò),說(shuō)找不到 pip。

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

添加搜索路徑

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

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

  1. python39.zip 
  2. .. 
  3. # Uncomment to run site.main() automatically 
  4. import site 

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

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

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

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

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

發(fā)布程序

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

  1. import json 
  2. import requests 
  3. url='https://fanyi.baidu.com/sug' 
  4. kw = input('請(qǐng)輸入待翻譯的文本:'
  5. kw = { 
  6.     'kw':kw 
  7. header = { 
  8.     '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' 
  9. response = requests.post(url=url, data=kw, headers=header) 
  10. response.raise_for_status 
  11. response.encoding = response.apparent_encoding 
  12. content_json = response.json() 
  13. #默認(rèn)轉(zhuǎn)成ascii編碼,因此需要設(shè)置成false 
  14. content = json.dumps(content_json,ensure_ascii=False
  15. result = json.loads(content) 
  16. print(result["data"]) 

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

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

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

最終文件夾如下所示:

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

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

 

責(zé)任編輯:武曉燕 來(lái)源: Python七號(hào)
相關(guān)推薦

2021-05-14 17:38:11

Python工具程序

2019-09-03 10:19:58

Kubernetes本地負(fù)載命令

2011-02-17 11:19:24

Linux Live

2015-07-06 10:42:18

PHP聊天室應(yīng)用

2012-04-25 22:56:10

Android

2017-08-09 15:27:33

python爬蟲(chóng)開(kāi)發(fā)工具

2023-04-06 15:09:00

PythonGUI開(kāi)發(fā)

2022-02-09 23:02:53

Vuex開(kāi)發(fā)管理模式

2012-04-26 11:33:20

iPhone應(yīng)用發(fā)布

2012-10-31 09:16:36

IT管理

2020-09-18 10:31:47

LRU算法數(shù)組

2015-10-10 15:17:34

APM

2022-09-14 23:04:10

MySQL監(jiān)控?cái)?shù)據(jù)數(shù)據(jù)庫(kù)

2021-08-30 20:19:55

應(yīng)用程序

2013-11-06 09:56:58

2009-12-28 16:37:46

WPF異步模式

2018-03-07 17:47:16

藍(lán)屏計(jì)算機(jī)死機(jī)

2013-09-16 09:12:58

數(shù)據(jù)分類(lèi)數(shù)據(jù)安全

2024-11-21 15:56:37

2023-12-26 11:20:51

PyInstalleUPXPython
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美精品影院 | 一级黄在线观看 | 日韩欧美国产精品 | 成人精品国产免费网站 | 久久精品99久久 | 不卡av电影在线播放 | 日本成人三级电影 | 欧美a在线观看 | 日本一区二区电影 | 九九综合 | 日韩午夜一区二区三区 | 久久一二 | av在线成人 | 国产精品久久久久久久久久久久 | h视频在线观看免费 | 国产真实乱对白精彩久久小说 | 精品国产31久久久久久 | 国产精品久久久久国产a级 欧美日韩国产免费 | 成人免费区一区二区三区 | 国产91久久久久蜜臀青青天草二 | 久精品久久 | 亚洲免费精品 | 网站国产| 国产成人福利视频在线观看 | 一区二区av | 久久精品视频亚洲 | 国产97碰免费视频 | 色资源在线观看 | 欧美激情视频一区二区三区免费 | 亚洲国产精品第一区二区 | 91精品国产91久久久久福利 | 国产亚洲一区精品 | 久草久草久草 | 国产a视频 | 一级毛片在线播放 | 91.色 | 国产精品99久久久久久www | 国产在线一区二区三区 | 精品欧美激情精品一区 | 丁香久久| 亚洲精品久久久蜜桃网站 |