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

- 其中兩個
__init__.py為空即可 - README.md寫一些該package的介紹,非必選
your_func.py是具體的功能實現(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="我的第二個python包",
# 包的詳細(xì)介紹(一般通過加載README.md)
long_description=long_description,
# 和上條命令配合使用,聲明加載的是markdown文件
long_description_content_type="text/markdown",
# 項目開源地址
url="https://dashen.tech",
# 如果項目由多個文件組成,我們可以使用find_packages()自動發(fā)現(xiàn)所有包和子包,而不是手動列出每個包,在這種情況下,包列表將是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的同級目錄,進行打包
python setup.py sdist

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

4.查看及檢驗



以上就是制作python包并通過pip上傳pypi的詳細(xì)內(nèi)容,更多關(guān)于python包pip上傳pypi的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python?Jinja2?庫靈活性廣泛性應(yīng)用場景實例解析
Jinja2,作為Python中最流行的模板引擎之一,為開發(fā)者提供了強大的工具,用于在Web應(yīng)用和其他項目中生成動態(tài)內(nèi)容,本文將深入研究?Jinja2?庫的各個方面,提供更豐富的示例代碼,能夠充分理解其靈活性和廣泛應(yīng)用的場景2024-01-01
基于Python和FFmpeg實現(xiàn)視頻翻譯音畫同步功能
做視頻翻譯,最容易被看到的難題是翻譯準(zhǔn)不準(zhǔn),但真正困擾工程實現(xiàn)的,往往是音畫同步,所以本文給大家介紹了在 Python + FFmpeg 環(huán)境下可落地的解決方案,需要的朋友可以參考下2025-12-12

