Python 項(xiàng)目代碼寫完了,然后怎么打包和發(fā)布?
你把你的代碼寫完了,是不是要給別人使用下,怎么打包你的項(xiàng)目代碼呢?
喂,開源么?
接下來小帥b就跟你說說,如何打包你的代碼。
就拿我們上次演示的?todo?為例,寫完代碼之后,代碼的目錄是這樣的:

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

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

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

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

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

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

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

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

接下來就可以打包了。
如果你之前沒有安裝過 setuptools 和 wheel 可以先安裝一波:
python3 -m pip install?--upgrade setuptools wheel

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

這時(shí)候你的目錄會增加這么些文件:

這樣就算打包好了,在 dist 目錄中,以 tar.gz 結(jié)尾的是你項(xiàng)目的源文件,而以 .whl 結(jié)尾的就是構(gòu)建好了給別人使用的發(fā)行版。
那么如何將你打包好的項(xiàng)目發(fā)布出來,給別人使用呢?
其實(shí)之前有說過了,這里再簡單的說一下吧:
先安裝一下 twine:
python3 -m pip install twine
接著使用 twine 將你打包好的文件上傳到 pypi?上面去:
twine upload dist/*
這時(shí)候它會提示你輸入 pypi 的賬號密碼:

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

這時(shí)候別人就可以通過 pip 來安裝你的項(xiàng)目了:


像這樣:

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

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

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


ok,以上就是今天小帥b給你帶來的分享,希望對你有幫助,那么我們下回見,peace!

掃一掃
學(xué)習(xí) Python 沒煩惱
評論
圖片
表情
