自制python包并通過(guò)pip上傳pypi
導(dǎo)讀
平時(shí)寫(xiě)Python,需要用到一個(gè)新包時(shí),習(xí)慣了pip install packageName,寫(xiě)多了就會(huì)想,這些包都是怎么來(lái)的?自己能不能"制作"一個(gè),任何人也都可以通過(guò)pip安裝?
有此想法,躬行實(shí)踐.答案顯然是肯定的,而且難度也絕沒(méi)有想的那樣大,或者說(shuō) It is easy
.
1.編寫(xiě)代碼
如要制作的包名為dashen
,新建如下目錄結(jié)構(gòu)
- 其中兩個(gè)
__init__.py
為空即可 - README.md寫(xiě)一些該package的介紹,非必選
your_func.py
是具體的功能實(shí)現(xiàn),在此示例如下:
def dashen_address(): print('www.dashen.tech') def dashen_master(): print('shuang.cui') def author_hometown(): print('山東鄒平')
setup.py
內(nèi)容如下:
import setuptools with open("README.md","r") as fh: long_description = fh.read() setuptools.setup( # 包的分發(fā)名稱,使用字母、數(shù)字、_、- name="dashen", # 版本號(hào), 版本號(hào)規(guī)范:https://www.python.org/dev/peps/pep-0440/ version="0.0.1", # 作者名 author="fliter", # 作者郵箱 author_email="i@dashen.tech", # 包的簡(jiǎn)介描述 description="我的第二個(gè)python包", # 包的詳細(xì)介紹(一般通過(guò)加載README.md) long_description=long_description, # 和上條命令配合使用,聲明加載的是markdown文件 long_description_content_type="text/markdown", # 項(xiàng)目開(kāi)源地址 url="https://dashen.tech", # 如果項(xiàng)目由多個(gè)文件組成,我們可以使用find_packages()自動(dòng)發(fā)現(xiàn)所有包和子包,而不是手動(dòng)列出每個(gè)包,在這種情況下,包列表將是example_pkg packages=setuptools.find_packages(), # 關(guān)于包的其他元數(shù)據(jù)(metadata) classifiers=[ # 該軟件包僅與Python3兼容 "Programming Language :: Python :: 3", # 根據(jù)MIT許可證開(kāi)源 "License :: OSI Approved :: MIT License", # 與操作系統(tǒng)無(wú)關(guān) "Operating System :: OS Independent", ], )
2.賬號(hào)注冊(cè)及打包
- 注冊(cè)Pypi
- 更新pip,setuptools和wheel
pip install --upgrade pip setuptools wheel
- 切換到setup.py的同級(jí)目錄,進(jìn)行打包
python setup.py sdist
會(huì)出現(xiàn)兩個(gè)新文件
3.上傳
上傳Pypi
pip install twine
(如果已經(jīng)安裝twine,跳過(guò)此步驟)
python -m twine upload dist/*
輸入Pypi的賬號(hào)及密碼
4.查看及檢驗(yàn)
以上就是制作python包并通過(guò)pip上傳pypi的詳細(xì)內(nèi)容,更多關(guān)于python包pip上傳pypi的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python如何用pip命令升級(jí)所有可以升級(jí)的(過(guò)時(shí)的)包
這篇文章主要介紹了Python如何用pip命令升級(jí)所有可以升級(jí)的(過(guò)時(shí)的)包,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03大家都說(shuō)好用的Python命令行庫(kù)click的使用
這篇文章主要介紹了大家都說(shuō)好用的Python命令行庫(kù)click的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11python中字符串的常見(jiàn)操作總結(jié)(一)
這篇文章主要介紹了python中字符串的常見(jiàn)操作總結(jié),文章通過(guò)簡(jiǎn)單介紹對(duì)象的相關(guān)展開(kāi)全文詳細(xì)內(nèi)容,需要的朋友可以參考一下2022-07-07Python 分布式緩存之Reids數(shù)據(jù)類型操作詳解
這篇文章主要介紹了Python 分布式緩存之Reids數(shù)據(jù)類型操作詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06Python 使用 PyMysql、DBUtils 創(chuàng)建連接池提升性能
DBUtils 是一套 Python 數(shù)據(jù)庫(kù)連接池包,并允許對(duì)非線程安全的數(shù)據(jù)庫(kù)接口進(jìn)行線程安全包裝。這篇文章主要介紹了Python 使用 PyMysql、DBUtils 創(chuàng)建連接池,提升性能,需要的朋友可以參考下2019-08-08對(duì)numpy Array [: ,] 的取值方法詳解
今天小編就為大家分享一篇對(duì)numpy Array [: ,] 的取值方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07