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

最簡單的方式發布你的Python應用

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

[[399409]]

本文轉載自微信公眾號「Python七號」,作者somenzz。轉載本文請聯系Python七號公眾號。

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

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

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

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

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

  1. 不穩定。明明我自己的電腦可以運行,放到其他電腦就會報錯閃退,提示系統缺少 xxx.dll 動態鏈接庫文件。
  2. 配置文件復雜。簡單的打包方式可能無法滿足需要,復雜一些的就要寫配置文件,有時明明寫好的配置文件,就是沒有生效。
  3. 打包文件大,啟動慢。這些工具并不會編譯成可執行文件,而是將 Python 解釋器,依賴的三方庫一起打包,如果打包成一個文件,運行超慢,因為這些會一起加載進內存。
  4. 還有一種方式就是編寫 Web 應用程序,發布成 Web 站點、H5、微信小程序等形式,這個門檻就有點高了,你需要有一定的經驗且熟悉 Web 開發,還要購買服務器或者云產品。

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

具體的方法就是使用官網發布的嵌入式 Python 包,不過這個僅適用于 Windows,這也不是什么大不了的,大多數非程序員用的都是 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 環境,隨便復制到其他 Windows 平臺都可以穩定運行。進入目錄,執行 .\python,只要是標準庫都可以導入。

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

安裝 pip 工具

我們寫程序不可能只用標準庫,還要使用第三方庫,比如 requests,那么就要為 Python 環境配置 pip。

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

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

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

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

即可完成 pip 的安裝:

此時 pip 已經安裝在 Lib\site-packages 下。

使用 pip

現在安裝 requests 并 import 測試。發現報了個錯,說找不到 pip。

好,現在進入 Python 解釋器環境,看下 Python 的搜索路徑 sys.path,發現并沒有 Lib\site-packages,那么們就添加它。

添加搜索路徑

進入 python-3.9.5-embed-amd64 文件夾,修改文件 python39._pth 文件

修改之后內容如下:

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

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

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

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

接下來再次查看 sys.path,發現 Lib\site-packages 已經在里面了:

再次安裝 requests 并導入測試,成功:

發布程序

現在就可以寫代碼發布程序了,我這里寫好了一個腳本 main.py 獲取用戶輸入的文本,自動調用百度翻譯,返回翻譯的結果,內容如下:

  1. import json 
  2. import requests 
  3. url='https://fanyi.baidu.com/sug' 
  4. kw = input('請輸入待翻譯的文本:'
  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. #默認轉成ascii編碼,因此需要設置成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 文本夾并列的位置,考慮到有人不會打開命令窗口,我們還需要制作一個 bat 腳本文件,用戶雙擊這個文件就可以運行我們的程序,內容如下:

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

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

最終文件夾如下所示:

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

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

 

責任編輯:武曉燕 來源: Python七號
相關推薦

2021-05-14 17:38:11

Python工具程序

2019-09-03 10:19:58

Kubernetes本地負載命令

2011-02-17 11:19:24

Linux Live

2015-07-06 10:42:18

PHP聊天室應用

2017-08-09 15:27:33

python爬蟲開發工具

2023-04-06 15:09:00

PythonGUI開發

2012-04-25 22:56:10

Android

2022-02-09 23:02:53

Vuex開發管理模式

2012-10-31 09:16:36

IT管理

2012-04-26 11:33:20

iPhone應用發布

2020-09-18 10:31:47

LRU算法數組

2022-09-14 23:04:10

MySQL監控數據數據庫

2021-08-30 20:19:55

應用程序

2015-10-10 15:17:34

APM

2013-09-16 09:12:58

數據分類數據安全

2018-03-07 17:47:16

藍屏計算機死機

2013-11-06 09:56:58

2009-12-28 16:37:46

WPF異步模式

2024-11-21 15:56:37

2010-12-30 10:10:06

NetLinux學習
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩中文字幕 | 欧美精品一区二区在线观看 | 99reav| 男女网站在线观看 | 成人av高清在线观看 | 91精品国产欧美一区二区成人 | 成人国产精品久久 | 久久久不卡网国产精品一区 | 亚洲一区视频 | 国产精品久久久久久久久 | 日本不卡一区二区三区在线观看 | 免费1区2区3区 | 中文字幕免费中文 | 国产乱码精品一区二区三区中文 | 精品美女 | 欧美在线一区二区三区 | 亚洲一页| 亚洲精品视频一区 | 日本人做爰大片免费观看一老师 | 久久久日韩精品一区二区三区 | 亚洲视频在线看 | 精品一二区| 午夜丰满寂寞少妇精品 | 欧美日韩亚洲国产 | 国产精品久久久久婷婷二区次 | 日韩激情视频一区 | 在线观看国产视频 | 日韩一级免费观看 | 免费一级欧美在线观看视频 | 青春草在线 | 成人18亚洲xxoo | 亚洲成色777777在线观看影院 | 久久久久久九九九九 | 日韩精品一区二区三区 | 91视频a | 欧美久久精品一级黑人c片 91免费在线视频 | 综合久久综合久久 | 久久另类 | 日韩成人影院在线观看 | 久久噜噜噜精品国产亚洲综合 | 日本不卡一区二区三区 |