上面講到怎么將自己的項(xiàng)目上傳到pypi,并成功安裝使用,但是咱的野心不止如此啊,如果只是這樣的話(huà),咱們的模塊只能在腳本中引用使用或者在python的解釋環(huán)境中使用,這不符合裝X的的規(guī)范啊

image.png
那么怎樣能使得我們的模塊能夠像系統(tǒng)命令一樣直接在終端命令行執(zhí)行呢?

image.png
如上是我的目錄結(jié)構(gòu),我的腳本名為xyscript,圈出來(lái)的就是必要的文件,可以根據(jù)自己的情況修改。
(注:下文script_name指代腳本名)
其中bin/script_name.py內(nèi)容為
#! /usr/bin/env python
from script_name.scripts.script_name import main
main()
其中script_name/scripts/init.py 內(nèi)容可以為空
其中script_name/scripts/script_name.py內(nèi)容為:
from __future__ import absolute_import
__all__ = ['function1', 'function2', 'function3','main']
from xyscript.api import function1, function2, function3 main
最后重要的是要把腳本定義的接口對(duì)應(yīng)的方法都寫(xiě)到script_name/api.py中。
補(bǔ)充:一般來(lái)說(shuō),在開(kāi)發(fā)過(guò)程中新增的方法和文件如果想立即安裝生效,我們可以使用:
$ python setup.py develop
但是開(kāi)發(fā)完成,發(fā)布了新的版本后我們想卸載掉develop安裝的文件,改成從pypi安裝的,這個(gè)時(shí)候是無(wú)法直接uninstall的,需要使用以下命令重新安裝一遍:
$ python setup.py install --record files.txt
安裝的所有文件將會(huì)羅列在files.txt文件中,要么手動(dòng)一個(gè)個(gè)按照地址刪除,要么使用:
$ cat files.txt | xargs rm -rf
一鍵刪除