【文章來源】知乎:學習python的正確姿勢
參考:https://zhuanlan.zhihu.com/p/73199573
學習Python的朋友應該都知道,當我們需要使用某些功能的時候,都會去安裝一些第三方的模塊,比如 “pip install requests”,感覺都被別人裝了,你有沒有想過,自己搞一個模塊,給別人直接 pip install 到他的電腦裡面直接使用呢?是不是突然就很厲害!
我們思考著,如果打包自己的代碼呢?然後給別人用,pipi呢?
我們進入主題:
先要打一個 Python 包到 pypi 上,是需要一定的目錄結構的,首先我們可以創建一個目錄,作為演示,我在這裡創建一個包:
<code>mkdir shuaib_package/<code>
接著我們就進入這個包:
<code>cd shuaib_package//<code>
接著我們在這個目錄下創建一個存放你代碼的目錄,這裡就叫 xiaoshuaib 好了:
<code>mkdir xiaoshuaib/<code>
我們進入這個目錄:
<code>cd xiaoshuaib//<code>
創建你的代碼,這裡為了演示,我就創建一個 xiaoshuaib.py 好了 :
<code>touch xiaoshuaib.py/<code>
在這個 py 裡面就簡單寫一個輸出的方法好了:
插一句:想要Python資料的可以關注小編,並在後臺私信小編:“01”即可領取。
在這個 xiaoshuaib 目錄下還必須要創建一個 __init__.py 來告訴別人你的模塊是啥:
touch __init__.py
在這個 __init__.py 寫下你的 name 和導入你的代碼模塊:
ok,此時此刻,你的文件目錄是這樣的:
只有這幾個文件還是不夠的,我們還要再創建幾個必要的文件,分別是 setup.py、LICENSE、READEME.md, 至於創建這幾個文件有什麼鳥用,等會帥b給你細細地道來,廢話不要那麼多,先創建再說:
<code>cd shuaib_package/
touch setup.py
touch LICENSE
touch README.md/<code>
那麼到現在這個時候,你的文件目錄應該是這樣的:
接下啦就跟你說說這幾個文件分別有什麼鳥用。
1、setup.py
這個文件主要是要告訴 setuptools ,我們的包裡面的一些信息,比如名稱啊,版本號啊,作者,郵箱等等...
這裡面對應的意思應該不用我多說了吧,就是一些你的模塊信息,像我這樣填入你自己的就好了。
2、README.md
在這裡就可以對你的模塊進一步各種吹了,剛我們寫的 setup 文件裡面也引用到了這個文件,主要是怕你吹的太多,所以直接用 markdown 讓你吹個夠,我們打開這個 README 文件吹一波:
好吧,我這裡作為演示就只吹這麼一點點夠了...
3、LICENSE
在開源的世界裡, LICENSE 是必不可少的,我們可以在這裡聲明:你要免費用我的代碼是吧?可以,但是你得署名一下啊,要讓別人知道這是我搞出來的啊,老子不要錢,但不能說這是你自己搞出來的好吧?
LICENSE 有好幾種不同的聲明,以後有機會帥b再跟你說說,這次就用 MIT 的 LICENSE ,我們編輯一下我們剛剛創建的 LICENSE:
好了,現在我們所需的文件就弄好了,接下來就可以將我們的東西給生成可分發的文件,在此之前我們要安裝並且更新好 setuptools 和 wheel 模塊:
<code>python3 -m pip install --user --upgrade setuptools wheel/<code>
安裝完成之後,你就可以在你剛剛創建的目錄執行以下命令生成啦:
<code>python3 setup.py sdist bdist_wheel/<code>
這時候你就會發現,你的目錄下會多了一個 dist 的目錄,這正是 pypi 所需要的
萬事具備,就差 tm 的上傳了啊,那麼你現在就要有一個 pypi 的賬號,你可以到以下鏈接註冊一個賬號:
https://pypi.org/account/register/
如果說你只想自己試著小打小鬧一下,可以到這裡註冊一個測試版的:
<code>https://test.pypi.org/account/register//<code>
不管咋地,反正你遲早會註冊好一個賬號的對吧?值得注意的是,你要驗證下你的郵箱,代表你不是機器人註冊的賬號:
那麼此時此刻,你所需的文件也有了,賬號也有了,這次就真的只差上傳一個動作了,我們需要 twine 這個模塊來進行上傳操作,先安裝一下:
<code>python3 -m pip install --user --upgrade twine/<code>
安裝好了之後,相信我,一點也不復雜,一個命令就能搞定上傳,進入你的目錄,然後執行以下命令把你剛剛生成的 dist 上傳上去:
<code>twine upload dist/*/<code>
這樣,我們就將我們的模塊上傳上去了!!
去官網搜一下 xiaoshuaib 先:
哈哈哈哈,有了,我們來安裝一波吧:
<code>pip install xiaoshuaib/<code>
安裝成功,來使用一波:
哈哈哈,完美使用。
ok,以上就是從 0 到 發佈一個 pypi 包的完整流程,希望對你有幫助,記得點“贊”。那麼我們下回見,peace!
結尾
最後多說一句,小編是一名python開發工程師,這裡有我自己整理了一套最新的python系統學習教程,包括從基礎的python腳本到web開發、爬蟲、數據分析、數據可視化、機器學習等。想要這些資料的可以關注小編,並在後臺私信小編:“01”即可領取。
閱讀更多 Python之眼 的文章