1、你得新建一個(gè)模塊,其實(shí)就是新建一個(gè).py文件。但是等等,我們把這個(gè).py文件放在哪里?額……所以還是先新建一個(gè)文件夾吧,我們就用和.py文件一樣的名字,結(jié)果如下:

新建文件夾和模塊文件
2、我們?cè)谶@個(gè)wp_diveintolist.py模塊文件中隨便寫個(gè)函數(shù)吧,這個(gè)函數(shù)就是我們以后wp_diveintolist.xxx()時(shí)候的xxx。
"""
This is the wp_diveintolist module, and it provide you a function called print_lol which can print the lists that may or may not have nested list.
"""
def print_lol(custom_list):
"""
:param custom_list:the list you wanna print
:return:each item per line
"""
for li in custom_list:
if isinstance(li, list):
print_lol(li)
else:
print(li)```
3、在wp_diveintolist文件夾里新建一個(gè)setup.py文件,這個(gè)文件用來記錄我們這個(gè)模塊的一些基本信息,比如名字、作者、聯(lián)系郵箱等等。

然后在setup.py中寫相關(guān)信息,這個(gè)是默認(rèn)格式,所以你照著格式把自己信息填進(jìn)去即可。
from distutils.core import setup
setup(
name='wp_diveintolist',
version='1.0.0',
py_modules='wp_diveintolist',
author='wp',
author_email='weisubao@126.com',
url='http://www.34miao.com',
description='A simple print function for nested list.',
)
4、在終端里進(jìn)入wp_diveintolist文件夾,然后用`python setup.py sdist`命令進(jìn)行構(gòu)建發(fā)布文件,大白話就是把我們的模塊整理成PyPI需要的格式,運(yùn)行這個(gè)命令后如果你也碰到和我一樣那么多not found,不要慌,一切正常。

5、其實(shí),構(gòu)建完文件后,我們就可以上傳到PyPI了,但是我勸你還是自己試驗(yàn)一下模塊是否運(yùn)行正常。怎么試驗(yàn)?把模塊安裝到自己電腦里然后看能不能正常導(dǎo)入使用就ok了。
6、把模塊安裝到自己電腦里。這里一定要有安裝權(quán)限,mac用戶用sudo來安裝。同樣的,一連串的not found不影響。

7、試一下是否可用,導(dǎo)入正常,使用也正常,OK了。

8、上傳到PyPI。我們?cè)诤?jiǎn)書發(fā)布文章,是要登錄后才能發(fā)布的,如你所知,上傳到PyPI,也需要登錄。注冊(cè)一個(gè)PyPI賬號(hào),然后登錄這個(gè)賬號(hào),上傳我們的模塊,這就是我們的大概步驟。
9、注冊(cè)PyPI,這里友情提示一下不要用163或者126的郵箱,因?yàn)榻?jīng)常收不到驗(yàn)證郵件,不驗(yàn)證的話賬號(hào)是不能用的,建議使用gmail郵箱。
10、有了賬號(hào)后,你可以登錄PyPI網(wǎng)站,有一個(gè)上傳頁面,就是你填寫一大堆信息然后上傳一個(gè)文件包,點(diǎn)擊提交的那種。但是……能用兩行代碼搞定的事情為毛要填一大堆東西呢。
11、我們?nèi)匀辉诮K端來操作,我們得先在終端登錄PyPI,使用`python setup.py register`,選擇`1、使用現(xiàn)成的用戶名密碼登錄`,然后按照提示輸入用戶名和密碼,哎……呀……我去……什么叫500錯(cuò)誤,500錯(cuò)誤是服務(wù)器端的錯(cuò)誤,那也就是說不是我的錯(cuò)嘍,一定是PyPI服務(wù)器有問題,一定是他們有問題,我才沒問題呢,是他們,是……他……們,那怎么辦,怎么辦,他們修復(fù)服務(wù)器不是一時(shí)半伙就能修復(fù)好了的,而且有可能這個(gè)問題已經(jīng)存在好久了,好幾個(gè)月了,一直沒人修復(fù),那么也就意味著我今天、明天、后天都不能上傳了,我天啊,我怎么辦啊,我做了那么多工作,就剩最后兩步了啊,我……天……啊。這就是樓主當(dāng)時(shí)的內(nèi)心OS啊。

12、別慌,再試幾次,有可能是網(wǎng)速什么的原因,訪問國(guó)外網(wǎng)站么,你懂得。摔……仍然是同樣的錯(cuò)誤啊??磥碜⒍ń裉焱瓴怀闪嗣?。
13、然后樓主開始各種搜索,在stackoverflow上看到了幾個(gè)回答,但是貌似不管用啊,而且stackoverflow打開好慢啊,逼得樓主不得不打開fanqiang軟件??戳藥讉€(gè)答案依然不行啊。
14、怎么辦?再試一次?好,最后一次了,不行就只能放棄。啪……啪……啪……成功了。怎么回事?難道是我剛剛打開了fanqiang軟件么,是的,真的是這個(gè)原因,我去。

15、既然已經(jīng)登錄上了,那么我們就剩下最后一步了——上傳,好雞凍啊。使用`python setup.py sdist upload`,結(jié)果顯示`OK`。注意:如果你也是用的wp_diveintolist模塊名,那上傳肯定是出錯(cuò)的,因?yàn)镻yPI不能有同名的模塊存在,除非我從PyPI網(wǎng)站上刪除這個(gè)模塊,或者你只能用其他名字。

16、成功了,真的成功了……慢著,上傳到PyPI了?我們瞅瞅去。真的成功了。

17、我是不是應(yīng)該推薦一個(gè)fanqiang軟件?你問為什么?因?yàn)檫@TM太像一篇軟文了啊,但并不是。再見!