私は小さなモジュールを書きました、そして私はそれをpypiに送るためにそれをパッケージ化するための基本的なステップが何であるか知りたいです:
- ファイル階層とは何ですか?
- ファイルにどのように名前を付ける必要がありますか?
- distutilsを使用してPKG-INFOを作成する必要がありますか?
- ドキュメント(スフィンクスで作成)はどこに含める必要がありますか?
私は小さなモジュールを書きました、そして私はそれをpypiに送るためにそれをパッケージ化するための基本的なステップが何であるか知りたいです:
ヒッチハイカーのパッケージングガイドを読むことをお勧めします。具体的には、次の方法を説明するクイックスタートセクションを確認する必要があります。
- プロジェクトをレイアウトする
- プロジェクトについて説明してください
- 最初のリリースを作成する
- パッケージをPythonPackageIndex(PyPI)に登録します
- リリースをアップロードしてから、タオルを手に取って宇宙を救おう!
また、「パッケージングの概要」セクションの「パッケージングの現状」も確認する必要があります。これは、setuptools、distutils、distutils2、およびdistributeを取り巻く混乱を解消するのに役立ちます。
以下の抜粋はPEP8からのもので、ファイルに名前を付ける方法についての質問に答えます。
モジュールには、すべて小文字の短い名前を付ける必要があります。読みやすさが向上する場合は、モジュール名にアンダースコアを使用できます。Pythonパッケージにも、アンダースコアの使用は推奨されていませんが、すべて小文字の短い名前を付ける必要があります。
モジュール名はファイル名にマップされ、一部のファイルシステムでは大文字と小文字が区別されず、長い名前が切り捨てられるため、モジュール名をかなり短く選択することが重要です。これはUnixでは問題になりませんが、コードが古いMacまたはWindowsバージョン、あるいはDOSに転送されるときに問題が発生します。
例は、実行方法を確認するための最良の方法です。
たぶん、このCheeseShopTutorialはあなたの助けになります。そこから:
パッケージインデックスへのパッケージの送信
Pythonコミュニティと共有したいPythonモジュールまたはパッケージがある場合は、それらをPythonPackageIndexに含めてください。まず、まだ行っていない場合は、プロジェクトを整理する必要があります。ProjectFileAndDirectoryLayoutのガイドラインに従うことができます。その後、ディストリビューションの作成に関するPythonのドキュメント( http://docs.python.org/distutils/index.html )を読むことをお勧めします。
Tarekの本「 ExpertPythonProgramming」からTarekZiadéによるPythonでのパッケージの作成を確認することもできます。ここでは、開発と配布に関する質問が詳細に取り上げられています。
Matthew Rankinの回答は、プロジェクトファイルの階層を整理する方法を示していますが、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