[英]How to send a package to PyPi?
我寫了一個小模塊,我想知道包裝它的基本步驟是什么,以便將其發送到pypi :
我建議閱讀The Hitchhiker的包裝指南 。 具體來說,您應該查看“ 快速入門”部分 ,其中介紹了如何:
- 布置你的項目
- 描述你的項目
- 創建您的第一個版本
- 使用Python Package Index(PyPI)注冊您的包
- 上傳你的版本,然后抓住你的毛巾並保存宇宙!
您還應該查看“包裝 簡介”部分中的“ 當前包裝狀態” ,因為這有助於解決圍繞setuptools,distutils,distutils2和distribute的一些混淆問題。
下面的摘錄來自PEP8 ,它回答了有關如何命名文件的問題:
模塊應具有簡短的全小寫名稱。 如果提高可讀性,則可以在模塊名稱中使用下划線。 Python包也應該有簡短的全小寫名稱,但不鼓勵使用下划線。
由於模塊名稱映射到文件名,並且某些文件系統不區分大小寫並截斷長名稱,因此選擇模塊名稱相當短很重要 - 這在Unix上不是問題,但它可能是將代碼傳輸到較舊的Mac或Windows版本或DOS時出現問題。
一個例子總是最好的方式來看看如何做:
也許這個CheeseShopTutorial對您有所幫助。 從那里:
將包提交到包索引
如果您想要與Python社區共享一些Python模塊或軟件包,我們很樂意將它們包含在Python Package Index中! 首先,如果您還沒有這樣做,您將希望組織您的項目。 您可以遵循ProjectFileAndDirectoryLayout中的指導原則。 之后,您將需要閱讀有關創建發行版的Python文檔: http : //docs.python.org/distutils/index.html 。
你也可以在 Tarek的書“專家Python編程”中查看TarekZiadé在Python中編寫一個包,其中詳細介紹了有關開發和分發的問題。
Matthew Rankin的回答告訴你如何組織你的項目文件heirarchy,但我發現自己每次想要在PyPI上更新項目時都要查找命令。 所以他們在這里:
setup.py
文件( 這是一個例子 ) python setup.py sdist python setup.py bdist_wheel python setup.py register twine upload dist/*
在PyPi網站上查找您的軟件包: https ://pypi.python.org/pypi ?% 3Aaction = index
在另一台機器上試試運行: pip install [your package name]
最重要的是正確准備你的setup.py
. 然后:
setup.py sdist bdist_wheel
生成分布存檔到dist/
文件夾 twine upload dist/*
將檔案上傳到PyPi(使用你的PyPi用戶名/密碼) 以下是setup.py
的示例:
from setuptools import setup, find_packages
with open('README.md') as readme_file:
README = readme_file.read()
with open('HISTORY.md') as history_file:
HISTORY = history_file.read()
setup_args = dict(
name='elastictools',
version='0.1.2',
description='Useful tools to work with Elastic stack in Python',
long_description_content_type="text/markdown",
long_description=README + '\n\n' + HISTORY,
license='MIT',
packages=find_packages(),
author='Thuc Nguyen',
author_email='gthuc.nguyen@gmail.com',
keywords=['Elastic', 'ElasticSearch', 'Elastic Stack', 'Python 3', 'Elastic 6'],
url='https://github.com/ncthuc/elastictools',
download_url='https://pypi.org/project/elastictools/'
)
install_requires = [
'elasticsearch>=6.0.0,<7.0.0',
'jinja2'
]
if __name__ == '__main__':
setup(**setup_args, install_requires=install_requires)
您可以在此處找到更多詳細信息教程: https : //medium.com/@thucnc/how-to-publish-your-own-python-package-to-pypi-4318868210f9
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.