自制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-11
python中字符串的常見(jiàn)操作總結(jié)(一)
這篇文章主要介紹了python中字符串的常見(jiàn)操作總結(jié),文章通過(guò)簡(jiǎn)單介紹對(duì)象的相關(guān)展開(kāi)全文詳細(xì)內(nèi)容,需要的朋友可以參考一下2022-07-07
Python 分布式緩存之Reids數(shù)據(jù)類型操作詳解
這篇文章主要介紹了Python 分布式緩存之Reids數(shù)據(jù)類型操作詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
Python 使用 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

