紫式書摘003:讀《Publishing Python Package》,思考「什麼是套件(Package)?」

更新於 發佈於 閱讀時間約 4 分鐘
A girl working on python package. --ar 16:9 - Image #4
https://www.midjourney.com/app/jobs/518224de-9d1c-4275-ac0b-df6311a0c94b/
你好,歡迎閱讀《紫式書摘》。
我是王啟樺,目前在加州大學洛杉磯分校(UCLA)擔任統計機器學習方向的博士後研究員。
這篇文章是《紫式書摘》的第003篇文章,紀錄了我閱讀《Publishing Python Packages》的Chapter 1後,產生對「套件(Package)」的一些想法隨筆。
之所以想讀《Publishing Python Package》,是因為
  • Reason 1:學習自動化能力,是經營個人副業的基礎
  • Reason 2:工作上的勞動成果,要能更容易為他人所用
  • Reason 3:了解open source community的文化,取用大量優質免費資源
而閱讀完《Publishing Python Package》的Chapter 1,我學到了3個要點
  • Lesson 1:Packaging = Software + Metadata 套件=軟體+元數據.
  • Lesson 2:套件管理系統(Package management systems)是用來解決各種版本衝突.
  • Lesson 3:發布套件時,會放入4種檔案:Source code, makefile, Metadata, Instructions.
對「什麼是套件(Package)?」感興趣嗎?繼續往下閱讀吧:)

Lesson 1:套件=軟體+元數據 (Packaging = Software + Metadata)

一直覺得「套件」這個概念很抽象。但在這本書中,我讀到套件的定義為:
Packaging is the act of archiving software along with metadata that describes those files. 套件化本身,就是將「軟體」與「描述軟體檔案的元數據」建檔的過程。
這個定義解答了我很多疑惑。當只有程式碼而沒有解說,我們很難知道程式碼有什麼用。當只有解說而沒有程式碼,我們又會覺得在畫大餅,不實際。
同時有程式碼(code)與解說(nocode),讓東西真的能用起來,這就是套件(Packaging)的藝術。
的確,當使用他人的github儲存庫,如果解說不清楚就很難用。在我的學術工作中,常常需要搭配paper來讀懂作者寫的code的用法。好的paper相當於非常詳細的code使用手冊。因此,練習寫好軟體的解說,是重要的任務。
把軟體的解說寫好,有哪些習慣需要立即開始培養呢?

Lesson 2:套件管理系統(Package management systems)是用來解決各種版本衝突

我學到的第二件事,就是理解到套件管理系統(Package management systems),就是用來解決各種版本衝突的。
在安裝軟體的時候,我也用過如 pip 安裝Python package, 用conda安裝Pytorch,用Homebrew安裝Mac軟體。這些「安裝方式」或多或少有經驗,但是讀了這本書後知道,他們提供了
  • 安裝(install)
  • 解安裝(uninstall)
  • 更新(update)
套件,一個標準化的流程,讓大家的軟體使用更加順暢。
有了套件管理系統,開發者就可以指定好用戶的使用設定(Configuration)。

Lesson 3:發布套件時,會放入4種檔案:Source code, makefile, Metadata, Instructions.

我學到的第3件事,就是原來發布套件的時候,會需要放入4種檔案:
  • 原始程式碼(Source code)
  • 編譯程式碼的makefile
  • 程式碼的元數據 (Metadata)
  • 用戶指南 (Instructions for the consumer).
能夠設計套件真的是一個體力活。首先,能夠寫source code就已經很考驗硬技能。而寫用戶指南又很考驗軟技能。這些東西都不顯然,但是在現代卻很流行,就一定有它的用途。開始投資IT技能,就可以享用各種免費的資源。
不知道makefile與Metadata有什麼好用的寫作原則?
你是否也對「」開始感興趣了呢?謝謝你閱讀《紫式書摘》。如果覺得這個文章對你有幫助,歡迎
  1. 免費追蹤《紫式書摘》寫作專題
  2. 追蹤我的方格子
  3. 免費訂閱《紫式書齋》電子報
  4. 透過臉書與我隨意聊聊
  5. 追蹤我的Twitter看看英語世界
為什麼會看到廣告
avatar-img
536會員
1.8K內容數
Outline as Content
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
王啟樺的沙龍 的其他內容
這篇文章是《紫式書摘》的第002篇文章,紀錄了我閱讀得到聽書《轉變:應對複雜新世界的思維方式》後,產生對「成功之道:資訊思維、科技應用與團隊協作的融合」 的一些想法隨筆。 本文章要回答的問題是:如何通過資訊思維、科技應用和有效溝通來突破限制,提高生產力?
你好,歡迎閱讀《紫式書摘》。 我是王啟樺,目前在加州大學洛杉磯分校(UCLA)擔任統計機器學習方向的博士後研究員。 這篇文章是《紫式書摘》的第001篇文章,紀錄了我閱讀《李松蔚·心理學通識(年度日更)》中〈080|慢系統:哪些自動化的反應不靠譜?〉後,產生對「成功的關鍵因素:理性思考、持續學習與尋找
這篇文章是《紫式書摘》的第002篇文章,紀錄了我閱讀得到聽書《轉變:應對複雜新世界的思維方式》後,產生對「成功之道:資訊思維、科技應用與團隊協作的融合」 的一些想法隨筆。 本文章要回答的問題是:如何通過資訊思維、科技應用和有效溝通來突破限制,提高生產力?
你好,歡迎閱讀《紫式書摘》。 我是王啟樺,目前在加州大學洛杉磯分校(UCLA)擔任統計機器學習方向的博士後研究員。 這篇文章是《紫式書摘》的第001篇文章,紀錄了我閱讀《李松蔚·心理學通識(年度日更)》中〈080|慢系統:哪些自動化的反應不靠譜?〉後,產生對「成功的關鍵因素:理性思考、持續學習與尋找
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
在離線環境需要安裝Python套件時就相當的麻煩,需要先下載好套件包,在打指令安裝,若套件數量一多時就會相當麻煩。 本文將介紹如何利用兩行指令快速的安裝整個資料夾的套件。
Thumbnail
本文檔介紹了在Swift中使用套件的詳細方法,包括如何引用第三方套件和自定義模組,如何創建自定義套件,以及一些常見的Swift套件。這些套件可以幫助開發者快速添加功能到項目中,提高開發效率和程式碼品質。
Thumbnail
套件(Package)是將程式或程式庫進行組織、分發和共享的一種方式。在軟體開發中,套件通常包含了相關的程式碼、資源文件和元數據,並提供了統一的名稱空間和版本管理。
Thumbnail
Python的模組和庫是可重用的程式碼塊,可透過import語句引入。特定部分可以透過from和import引入,並可使用as指定別名。第三方模組可透過pip工具安裝並在程式碼中使用。此外,也可以創建自定義模組並在其他Python文件中引用。
Thumbnail
情況描述 我們在「【🔒 Python 先修班】教你親手打包專屬套件庫的手作課(pip install…)」有提到如何打包Python讓自己的程式變成套件, 讓其他人可以用pip install的方式進行安裝,😲 But… 我們實際上打包後, 發現到引用的檔案都有被打包進去,但目錄卻未被打包
Thumbnail
古有四大名著,現今Python四大容器🤣 哪四個?list串列,tuple元組,dict字典,set集合。 那這四個怎麼分? 一起來看看吧! (以下有手寫與上機實際測試請付費觀看) 以上我精心整理主要會使用到的功能 當然python功能太多了,肯定不只。 實際操作: 大概就這樣?(
想要開始Python語言的開發環境,有兩種常見方式,一種是下載安裝到本機端,另一種是直接在雲端執行。本文將介紹三個常見的開發工具及其安裝步驟。
Thumbnail
在著手開發一套程式時,會讓人覺得煩躁的考量點,其中一個讓人頭痛的,應該就是 UI 的設計跟串接了吧,究竟有沒有一個套件,能讓開發者能夠以一套語言,就能打遍天下呢?
Thumbnail
本文讓我們來淺談一下類別是什麼? 若想看詳細一點的python官方教學可點此連結 Python 的類別(Class)是一種面向物件導向程式設計的概念,讓你能夠創建具有屬性和方法的物件。類別是對現實世界中事物的抽象,它包含數據和操作這些數據的方法。它非常的抽象,想像一個類別就像是一個蛋糕模具,
Thumbnail
本文將介紹 Python 中的閉包(Closure),我們將從閉包的定義開始介紹,然後是閉包的用途,以及最後的實作範例。
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
在離線環境需要安裝Python套件時就相當的麻煩,需要先下載好套件包,在打指令安裝,若套件數量一多時就會相當麻煩。 本文將介紹如何利用兩行指令快速的安裝整個資料夾的套件。
Thumbnail
本文檔介紹了在Swift中使用套件的詳細方法,包括如何引用第三方套件和自定義模組,如何創建自定義套件,以及一些常見的Swift套件。這些套件可以幫助開發者快速添加功能到項目中,提高開發效率和程式碼品質。
Thumbnail
套件(Package)是將程式或程式庫進行組織、分發和共享的一種方式。在軟體開發中,套件通常包含了相關的程式碼、資源文件和元數據,並提供了統一的名稱空間和版本管理。
Thumbnail
Python的模組和庫是可重用的程式碼塊,可透過import語句引入。特定部分可以透過from和import引入,並可使用as指定別名。第三方模組可透過pip工具安裝並在程式碼中使用。此外,也可以創建自定義模組並在其他Python文件中引用。
Thumbnail
情況描述 我們在「【🔒 Python 先修班】教你親手打包專屬套件庫的手作課(pip install…)」有提到如何打包Python讓自己的程式變成套件, 讓其他人可以用pip install的方式進行安裝,😲 But… 我們實際上打包後, 發現到引用的檔案都有被打包進去,但目錄卻未被打包
Thumbnail
古有四大名著,現今Python四大容器🤣 哪四個?list串列,tuple元組,dict字典,set集合。 那這四個怎麼分? 一起來看看吧! (以下有手寫與上機實際測試請付費觀看) 以上我精心整理主要會使用到的功能 當然python功能太多了,肯定不只。 實際操作: 大概就這樣?(
想要開始Python語言的開發環境,有兩種常見方式,一種是下載安裝到本機端,另一種是直接在雲端執行。本文將介紹三個常見的開發工具及其安裝步驟。
Thumbnail
在著手開發一套程式時,會讓人覺得煩躁的考量點,其中一個讓人頭痛的,應該就是 UI 的設計跟串接了吧,究竟有沒有一個套件,能讓開發者能夠以一套語言,就能打遍天下呢?
Thumbnail
本文讓我們來淺談一下類別是什麼? 若想看詳細一點的python官方教學可點此連結 Python 的類別(Class)是一種面向物件導向程式設計的概念,讓你能夠創建具有屬性和方法的物件。類別是對現實世界中事物的抽象,它包含數據和操作這些數據的方法。它非常的抽象,想像一個類別就像是一個蛋糕模具,
Thumbnail
本文將介紹 Python 中的閉包(Closure),我們將從閉包的定義開始介紹,然後是閉包的用途,以及最後的實作範例。