Python 項目代碼寫完了,然后怎么打包和發(fā)布?

你把你的代碼寫完了,是不是要給別人使用下,怎么打包你的項目代碼呢?喂,開源么?

接下來就跟你說說,如何打包你的代碼。
就拿我們上次演示的 todo為例,寫完代碼之后,代碼的目錄是這樣的:

圖片

在 todo 這個目錄里面,文件都放在一起了,我們可以這樣簡單劃分一下:

圖片

這里創(chuàng)建了一個 package 目錄,將源碼文件放進(jìn)去,然后把模板文件和數(shù)據(jù)庫文件分門別類的安排好。在 package 中,還創(chuàng)建了一個 init.py 儀式感一下。為了讓別人知道你是認(rèn)真對待這個項目的,你可以在項目文件中創(chuàng)建一個 tests 目錄,在里面測試你的代碼:

圖片

接著可以創(chuàng)建一個 LICENSE,用來說明你的這個項目可以被怎么使用?是不是需要聲明來源,是不是可以商用?別人用你的項目去搞事情如何避免被抓去吃牢飯等。
現(xiàn)成的開源協(xié)議有好幾種:

圖片

接著再創(chuàng)建一個 README 文件,來說明你這個項目是干什么的,如何使用等描述。

圖片

現(xiàn)在你的項目文件目錄就有點人模人樣了:

圖片

接下來要創(chuàng)建一個比較重要的文件了 —— setup.py,這個文件主要用來描述你的項目信息,好讓 setuptools 打包工具來幫你打包項目。在根目錄下創(chuàng)建一個 setup.py 文件,按以下的方式來寫你的項目信息:

圖片

每個參數(shù)都是什么意思呢?我來給你說明一下:
long_description:對項目比較長的描述,我們可以直接從 你剛剛寫的 README 文件讀取。

圖片
  • name: 你定義的包名,可以用字母、數(shù)字、下劃線,需要確保唯一性。
  • version: 項目的版本號。
  • author: 你(作者)的名稱。
  • author_email: 你(作者) 的郵箱。
  • description: 項目的簡要描述。
  • long_description_content_type:長描述內(nèi)容的使用的標(biāo)記類型,一般為 markdown 或者 rst。
  • url: 你這個項目的主頁地址,也可以直接鏈接到你這個項目的Github 地址上面去。
  • include_package_data: 是否添加 py 以外的文件。
  • package_data: 需要添加 Python 的額外文件列表。
  • packages: 直接用 setuptool 找到你項目所有相關(guān)的包列表。
  • classifiers: 附加說明,比如這里寫的就是使用于 Python3 版本,使用的是 MIT 協(xié)議,獨立于 OS。
  • python_requires: python 版本要求。
    那么現(xiàn)在,你的項目目錄應(yīng)該是這樣子的:
圖片

接下來就可以打包了。

如果你之前沒有安裝過 setuptools 和 wheel 可以先安裝一波:
python3 -m pip install --upgrade setuptools wheel

圖片

然后在你的項目根目錄下,使用如下命令打包:
python3 setup.py sdist bdist_wheel

圖片

這時候你的目錄會增加這么些文件:

圖片

這樣就算打包好了,在 dist 目錄中,以 tar.gz 結(jié)尾的是你項目的源文件,而以 .whl 結(jié)尾的就是構(gòu)建好了給別人使用的發(fā)行版。

那么如何將你打包好的項目發(fā)布出來,給別人使用呢?其實之前有說過了,這里再簡單的說一下吧:先安裝一下 twine:python3 -m pip install twine接著使用 twine 將你打包好的文件上傳到 pypi 上面去:twine upload dist/*這時候它會提示你輸入 pypi 的賬號密碼:

圖片

沒有怎么辦?去注冊一個唄,到以下鏈接注冊:https://pypi.org/account/register/接著輸入你的賬號密碼,就可以上傳上去了:

圖片

這時候別人就可以通過 pip 來安裝你的項目了:
圖片
圖片

像這樣:

圖片

然后就可以給別人使用你的包了:

圖片

你在 pip install 的時候,其實就是下載你上傳的 whl 文件然后安裝:


圖片

如果你不想開源,只想給你朋友使用的話,你也可以直接把 dist 這個目錄下的文件發(fā)給他,讓他自行安裝一波就可以使用了:

image.png

作者: 學(xué)習(xí)python的正確姿勢
原文鏈接:https://mp.weixin.qq.com/s/SyMRQ6KUDTGLB9Px9oBPIg

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容