簡體   English   中英

如何將包發送給PyPi?

[英]How to send a package to PyPi?

我寫了一個小模塊,我想知道包裝它的基本步驟是什么,以便將其發送到pypi

  • 什么是文件層次結構?
  • 我該如何命名文件?
  • 我應該使用distutils來創建PKG-INFO嗎?
  • 我應該在哪里包含我的文件(用獅身人面像制作)?

我建議閱讀The Hitchhiker的包裝指南 具體來說,您應該查看“ 快速入門”部分 ,其中介紹了如何:

  1. 布置你的項目
  2. 描述你的項目
  3. 創建您的第一個版本
  4. 使用Python Package Index(PyPI)注冊您的包
  5. 上傳你的版本,然后抓住你的毛巾並保存宇宙!

您還應該查看“包裝 簡介”部分中的“ 當前包裝狀態” ,因為這有助於解決圍繞setuptools,distutils,distutils2和distribute的一些混淆問題。

更新Re:如何命名文件

下面的摘錄來自PEP8 ,它回答了有關如何命名文件的問題:

模塊應具有簡短的全小寫名稱。 如果提高可讀性,則可以在模塊名稱中使用下划線。 Python包也應該有簡短的全小寫名稱,但不鼓勵使用下划線。

由於模塊名稱映射到文件名,並且某些文件系統不區分大小寫並截斷長名稱,因此選擇模塊名稱相當短很重要 - 這在Unix上不是問題,但它可能是將代碼傳輸到較舊的Mac或Windows版本或DOS時出現問題。

一個例子總是最好的方式來看看如何做:

http://packages.python.org/an_example_pypi_project/

也許這個CheeseShopTutorial對您有所幫助。 從那里:

將包提交到包索引

如果您想要與Python社區共享一些Python模塊或軟件包,我們很樂意將它們包含在Python Package Index中! 首先,如果您還沒有這樣做,您將希望組織您的項目。 您可以遵循ProjectFileAndDirectoryLayout中的指導原則。 之后,您將需要閱讀有關創建發行版的Python文檔: http//docs.python.org/distutils/index.html

你也可以 Tarek的書“專家Python編程”中查看TarekZiadé在Python中編寫一個包,其中詳細介紹了有關開發和分發的問題。

Matthew Rankin的回答告訴你如何組織你的項目文件heirarchy,但我發現自己每次想要在PyPI上更新項目時都要查找命令。 所以他們在這里:

如PyPi網站所述

  • 創建一個setup.py文件( 這是一個例子
  • 使用PyPi注冊用戶名/密碼
  • 這樣做: 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM