自制python包并通過pip上傳pypi
導(dǎo)讀
平時(shí)寫Python,需要用到一個(gè)新包時(shí),習(xí)慣了pip install packageName,寫多了就會想,這些包都是怎么來的?自己能不能"制作"一個(gè),任何人也都可以通過pip安裝?
有此想法,躬行實(shí)踐.答案顯然是肯定的,而且難度也絕沒有想的那樣大,或者說 It is easy.
1.編寫代碼
如要制作的包名為dashen,新建如下目錄結(jié)構(gòu)

- 其中兩個(gè)
__init__.py為空即可 - README.md寫一些該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",
# 版本號, 版本號規(guī)范:https://www.python.org/dev/peps/pep-0440/
version="0.0.1",
# 作者名
author="fliter",
# 作者郵箱
author_email="i@dashen.tech",
# 包的簡介描述
description="我的第二個(gè)python包",
# 包的詳細(xì)介紹(一般通過加載README.md)
long_description=long_description,
# 和上條命令配合使用,聲明加載的是markdown文件
long_description_content_type="text/markdown",
# 項(xiàng)目開源地址
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許可證開源
"License :: OSI Approved :: MIT License",
# 與操作系統(tǒng)無關(guān)
"Operating System :: OS Independent",
],
)2.賬號注冊及打包
- 注冊Pypi
- 更新pip,setuptools和wheel
pip install --upgrade pip setuptools wheel
- 切換到setup.py的同級目錄,進(jìn)行打包
python setup.py sdist

會出現(xiàn)兩個(gè)新文件
3.上傳
上傳Pypi
pip install twine(如果已經(jīng)安裝twine,跳過此步驟)
python -m twine upload dist/*輸入Pypi的賬號及密碼

4.查看及檢驗(yàn)



以上就是制作python包并通過pip上傳pypi的詳細(xì)內(nèi)容,更多關(guān)于python包pip上傳pypi的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python整小時(shí) 整天時(shí)間戳獲取算法示例
今天小編就為大家分享一篇python整小時(shí) 整天時(shí)間戳獲取算法示例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-02-02
python進(jìn)階之多線程對同一個(gè)全局變量的處理方法
今天小編就為大家分享一篇python進(jìn)階之多線程對同一個(gè)全局變量的處理方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11
Python?Jinja2?庫靈活性廣泛性應(yīng)用場景實(shí)例解析
Jinja2,作為Python中最流行的模板引擎之一,為開發(fā)者提供了強(qiáng)大的工具,用于在Web應(yīng)用和其他項(xiàng)目中生成動(dòng)態(tài)內(nèi)容,本文將深入研究?Jinja2?庫的各個(gè)方面,提供更豐富的示例代碼,能夠充分理解其靈活性和廣泛應(yīng)用的場景2024-01-01
Python開發(fā)的實(shí)用計(jì)算器完整實(shí)例
這篇文章主要介紹了Python開發(fā)的實(shí)用計(jì)算器,結(jié)合完整實(shí)例形式分析了Python實(shí)現(xiàn)計(jì)算器四則運(yùn)算、開方、取余等相關(guān)操作技巧,需要的朋友可以參考下2017-05-05
基于Python和FFmpeg實(shí)現(xiàn)視頻翻譯音畫同步功能
做視頻翻譯,最容易被看到的難題是翻譯準(zhǔn)不準(zhǔn),但真正困擾工程實(shí)現(xiàn)的,往往是音畫同步,所以本文給大家介紹了在 Python + FFmpeg 環(huán)境下可落地的解決方案,需要的朋友可以參考下2025-12-12

