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

Python 打包 Exe 程序避坑指南

開發 后端
寫完一個python程序之后,如何才能快速地將代碼分享給別人,尤其對于初學者來說,能把自己的代碼包裝成一個exe程序并傳遞到別人電腦上運行,那是一件非常有成就感的事。好在python自帶簡易打包程序,讓很多人能過一把當程序員的癮。目前流行的打包庫就有py2exe、pyinstaller和cx_Freeze。

[[397951]]

本文轉載自微信公眾號「Python中文社區」,作者楊炳。轉載本文請聯系Python中文社區公眾號。

寫完一個python程序之后,如何才能快速地將代碼分享給別人,尤其對于初學者來說,能把自己的代碼包裝成一個exe程序并傳遞到別人電腦上運行,那是一件非常有成就感的事。好在python自帶簡易打包程序,讓很多人能過一把當程序員的癮。目前流行的打包庫就有py2exe、pyinstaller和cx_Freeze。

但python的運行環境復雜,編寫的程序往往是借助了很多附加的功能庫來實現,對簡單的打包會造成一定困難。本人也是在經歷了多次的打包失敗和成功的經歷之后,覺得pyinstaller的成功率最高,所以有必要針對pyinstaller寫一篇避坑指南。

一、安裝

使用python的pip安裝,在cmd窗口,使用pip install pyinstaller,即安裝完成。然后配置好環境變量。

二、使用

例如在程序6.py所在文件夾打開cmd窗口。一般輸入pyintaller -F **.py(命令符的具體含義在下文中解釋),回車即開始打包。順利的話,會出現打包成功的反饋,如下圖,這時,就說明文件已經打包完成了。dist文件夾里面就放著打包完的exe程序,使用時剪切出來就行了。如果運氣好或者本身程序比較簡單,那這個exe就能在任何電腦運行了。

但往往沒這么容易,pyinstaller在使用中有很多坑,打包的開始,也是修補的開始。

三、遇坑填坑

1.文件路徑中不能出現中文

否則會在打包過程中直接出現如下報錯。這時只要把所在文件夾和程序名字改成英文或者數字重新打包即可。可以打包完再將exe的名字改回來。

2.缺少導入hook文件

有時即使打包成功了,在運行exe時候,還是會有報錯并閃退。

如果報錯為:FileNotFoundError: [Errno 2] No such file or directory:……

那是缺少hook文件,要在pyinstaller的安裝路徑里的hook增加一個自定義的hook。hook文件的命名規范為: hook-【庫名】.py。例如以我在打包程序中用了結巴分詞這個功能庫為例,那我要建立一個hook-jieba.py,并寫入:

  1. from PyInstaller.utils.hooks import collect_data_files 
  2. datas = collect_data_files("jieba"

然后放到~\Lib\site-packages\PyInstaller\hooks中去,再次運行pyinstaller打包既可解決該問題。

3.缺少導入功能庫模塊

如果報錯為 no moduler named “pandas._libs.skiplist”,那就要手動import庫,解決方法打開生成的spec文件,找到 hiddenimports=[],加上要添加的庫,將其改動如下,hiddenimports=["pandas._libs.skiplist"],然后刪除dist里面的exe文件,重新用spec文件打包,pyinstaller **.spec。即可解決該問題。

四、花式打包

涉及到打包的幾個重要參數如下。

  • -F,將所有內容打包到一個exe中,方便發送,一般都使用這個參數。
  • -c,此為windows系統的默認選項,使用這個參數,運行時會有一個黑窗控制臺。
  • -w,使用這個參數,運行時不會出現黑窗控制臺。
  • -i 使用這個參數用于生成自定義圖標的exe,在這后面要加上ico圖片的地址。例如,pyinstaller -i D:\icons\demo.ico **.py

五、結語

將程序打包成exe發送出去或者供用戶下載,是一個比較傳統的傳播方式,并且比較笨重,其實用簡單的H5或者小程序就能實現一樣的效果,對用戶而言也更方便,也是朝著輕應用的方向發展。此外,對于專業用戶還能通過github和api等方式傳播。隨著網絡觀念的深入人心和5G時代到來,相信有更好的方式能更安全、快捷、私密地將工具的功能傳遞給所需要的用戶。

作者:楊炳,心理學者在銀行寫代碼。

 

責任編輯:武曉燕 來源: Python中文社區
相關推薦

2021-05-08 12:30:03

Pythonexe代碼

2018-03-26 11:14:13

程序猿bug代碼

2024-04-24 13:45:00

2024-04-03 12:30:00

C++開發

2021-02-26 00:46:11

CIO數據決策數字化轉型

2020-06-19 11:20:17

開發避坑支付寶

2022-03-04 18:11:16

信服云

2023-05-24 10:06:42

多云實踐避坑

2021-02-22 17:00:31

Service Mes微服務開發

2020-06-12 11:03:22

Python開發工具

2021-04-28 09:26:25

公有云DTS工具

2020-12-16 10:00:59

Serverless數字化云原生

2018-01-20 20:46:33

2020-09-13 09:19:10

LinuxPython3.6

2019-02-12 15:07:42

屏幕參數PC

2019-04-24 17:45:24

微服務容器青云

2020-08-26 07:37:25

Nacos微服務SpringBoot

2023-11-01 15:32:58

2024-02-20 08:51:56

PythonFlask工具

2011-12-07 12:01:31

ibmdw
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 2019天天干天天操 | 一级黄色片在线看 | 91免费电影 | 国产91亚洲精品一区二区三区 | 久久五月婷 | 国产精品一区二区在线观看 | 欧美日韩电影一区 | 亚洲区一区二 | 日韩精品视频网 | 91中文字幕 | 国产精品久久久久久中文字 | 在线观看成人av | 偷拍自拍第一页 | 国产精品69毛片高清亚洲 | 成人一级毛片 | 成人午夜免费福利视频 | 免费一看一级毛片 | 国产精品成人一区二区 | 国产你懂的在线观看 | 在线视频91 | 免费小视频在线观看 | 国产一区二| 国产成人免费 | 欧美综合久久久 | 亚洲一区在线日韩在线深爱 | 久久精品亚洲一区二区三区浴池 | 一级免费毛片 | 成人av在线大片 | 国产精品自产拍在线观看蜜 | 免费成人国产 | 日本精品网站 | 精品亚洲一区二区三区四区五区 | 羞羞的视频在线观看 | 青青草免费在线视频 | 日韩欧美在线不卡 | 国产色网| 亚洲欧美日韩在线一区二区 | 九九热精品在线 | 国产欧美日韩综合精品一区二区 | 亚洲精品视频免费观看 | 国产aaaaav久久久一区二区 |