このOPの質問はまだ誰も取り上げていないので、
私がやりたかったこと:
「pip install ...」でPythonモジュールをインストール可能にします
ここでは絶対的な最小限の例では、準備と使用は、PyPIにパッケージをアップロードする基本的な手順を示す、あるsetuptools
としtwine
。
これは、少なくともチュートリアルの代わりになるものではありません。この非常に基本的な例でカバーしている以上のことがたくさんあります。
パッケージの作成自体は、すでにここの他の回答でカバーされているので、そのステップがカバーされていて、プロジェクト構造が次のようになっていると仮定しましょう。
.
└── hellostackoverflow/
├── __init__.py
└── hellostackoverflow.py
setuptools
パッケージ化に使用するには、ファイルを追加する必要がありますsetup.py
。これはプロジェクトのルートフォルダーに配置されます。
.
├── setup.py
└── hellostackoverflow/
├── __init__.py
└── hellostackoverflow.py
少なくとも、パッケージのメタデータを指定すると、次のsetup.py
ようになります。
from setuptools import setup
setup(
name='hellostackoverflow',
version='0.0.1',
description='a pip-installable package example',
license='MIT',
packages=['hellostackoverflow'],
author='Benjamin Gerfelder',
author_email='benjamin.gerfelder@gmail.com',
keywords=['example'],
url='https://github.com/bgse/hellostackoverflow'
)
を設定したので、reStructuredTextのreadmeファイルとともに、license='MIT'
次のようにコピーをプロジェクトに含めLICENCE.txt
ますREADME.rst
。
.
├── LICENCE.txt
├── README.rst
├── setup.py
└── hellostackoverflow/
├── __init__.py
└── hellostackoverflow.py
この時点で、を使用してパッケージ化を開始する準備ができsetuptools
ています。まだインストールしていない場合は、次のコマンドでインストールできますpip
。
pip install setuptools
これを実行してを作成するsource distribution
には、プロジェクトのルートフォルダーでsetup.py
、コマンドラインからを呼び出して、次のように指定しますsdist
。
python setup.py sdist
これにより、配布パッケージとegg-infoが作成され、次のようなフォルダー構造になりますdist
。
.
├── dist/
├── hellostackoverflow.egg-info/
├── LICENCE.txt
├── README.rst
├── setup.py
└── hellostackoverflow/
├── __init__.py
└── hellostackoverflow.py
この時点で、を使用してインストールできるパッケージがあるpip
ので、プロジェクトルートから(この例のようにすべての名前が付けられていると仮定して):
pip install ./dist/hellostackoverflow-0.0.1.tar.gz
すべてがうまくいけば、Pythonインタープリターを開くことができます。混乱を避けるためにプロジェクトディレクトリの外のどこかで言い、光沢のある新しいパッケージを使用してみます。
Python 3.5.2 (default, Sep 14 2017, 22:51:06)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from hellostackoverflow import hellostackoverflow
>>> hellostackoverflow.greeting()
'Hello Stack Overflow!'
パッケージのインストールと動作を確認したので、PyPIにアップロードできます。
実験でライブリポジトリを汚染しないため、テストリポジトリ用のアカウントを作成twine
し、アップロードプロセス用にインストールします。
pip install twine
アカウントが作成されtwine
、パッケージをアップロードするように指示するだけで、資格情報を要求し、指定したリポジトリにパッケージをアップロードします。
twine upload --repository-url https://test.pypi.org/legacy/ dist/*
これで、PyPIテストリポジトリのアカウントにログインして、しばらくの間、新しくアップロードしたパッケージに驚嘆し、次のコマンドを使用してそれを取得できpip
ます。
pip install --index-url https://test.pypi.org/simple/ hellostackoverflow
ご覧のとおり、基本的なプロセスはそれほど複雑ではありません。先に述べたように、ここで取り上げた以外にも多くのことがあるので、先に進んでチュートリアルを読んでより詳細な説明を読んでください。