15

私は小さなモジュールを書きました、そして私はそれをpypiに送るためにそれをパッケージ化するための基本的なステップが何であるか知りたいです:

  • ファイル階層とは何ですか?
  • ファイルにどのように名前を付ける必要がありますか?
  • distutilsを使用してPKG-INFOを作成する必要がありますか?
  • ドキュメント(スフィンクスで作成)はどこに含める必要がありますか?
4

5 に答える 5

12

ヒッチハイカーのパッケージングガイドを読むことをお勧めします。具体的には、次の方法を説明するクイックスタートセクションを確認する必要があります。

  1. プロジェクトをレイアウトする
  2. プロジェクトについて説明してください
  3. 最初のリリースを作成する
  4. パッケージをPythonPackageIndex(PyPI)に登録します
  5. リリースをアップロードしてから、タオルを手に取って宇宙を救おう!

また、「パッケージングの概要」セクションの「パッケージングの現状」も確認する必要があります。これは、setuptools、distutils、distutils2、およびdistributeを取り巻く混乱を解消するのに役立ちます。

更新Re:ファイルに名前を付ける方法

以下の抜粋はPEP8からのもので、ファイルに名前を付ける方法についての質問に答えます。

モジュールには、すべて小文字の短い名前を付ける必要があります。読みやすさが向上する場合は、モジュール名にアンダースコアを使用できます。Pythonパッケージにも、アンダースコアの使用は推奨されていませんが、すべて小文字の短い名前を付ける必要があります。

モジュール名はファイル名にマップされ、一部のファイルシステムでは大文字と小文字が区別されず、長い名前が切り捨てられるため、モジュール名をかなり短く選択することが重要です。これはUnixでは問題になりませんが、コードが古いMacまたはWindowsバージョン、あるいはDOSに転送されるときに問題が発生します。

于 2010-09-07T16:40:11.503 に答える
3

例は、実行方法を確認するための最良の方法です。

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

于 2010-09-07T12:44:57.013 に答える
2

たぶん、このCheeseShopTutorialはあなたの助けになります。そこから:

パッケージインデックスへのパッケージの送信

Pythonコミュニティと共有したいPythonモジュールまたはパッケージがある場合は、それらをPythonPackageIndexに含めてください。まず、まだ行っていない場合は、プロジェクトを整理する必要があります。ProjectFileAndDirectoryLayoutのガイドラインに従うことができます。その後、ディストリビューションの作成に関するPythonのドキュメント( http://docs.python.org/distutils/index.html )を読むことをお勧めします。

Tarekの本「 ExpertPythonProgramming」からTarekZiadéによるPythonでのパッケージの作成を確認することもできます。ここでは、開発と配布に関する質問が詳細に取り上げられています。

于 2010-09-07T11:26:31.277 に答える
0

Matthew Rankinの回答は、プロジェクトファイルの階層を整理する方法を示していますが、PyPIでプロジェクトを更新するたびに、実行するコマンドを検索する必要があります。だからここにあります:

PyPiサイトで説明されているように

于 2016-04-15T10:01:19.217 に答える
0

最も重要なことは、setup.py適切に準備することです。それで:

  • setup.py sdist bdist_wheeldist/フォルダに配布アーカイブを生成するには
  • 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

于 2018-11-08T03:57:37.330 に答える