Pythonでパッケージを作って、PyPIに登録した時の作業メモ
今回の対象プロジェクト
sasaco/FEMPython
目的
自作モジュールをPyPIへ登録してpip installでインストールします。今回は簡単なコードを実装して使います。
方法
基本的に公式のチュートリアルに従います。個人的なこだわりで、wslを使ったりgithubに上げたり、仮想環境をpyvenvで作ったりしてますが、今回はそういう事が無くても出来るようにしているつもりです。何回かコマンドを使う必要がある為、そこで引っかかるかもしれません。そこは他の記事にお任せします。または後日、更新します。
必要なディレクトリやファイルを作る
FEMPython/
├── LICENSE
├── pyproject.toml
├── README.md
├── setup.cfg
├── src/
│ └── FEMPython/
│ ├── __init__.py
│ ├── AdvancedElement.py
│ ├── BarElement.py
│ ├── ....
│ └── Solver.py
└── tests/
公式のチュートリアルのままです。これを任意の場所に作ります。僕はデスクトップにPyPIフォルダを作ってその中で作業しています。
pyproject.tomlの編集
pyproject.toml は、ビルドツール(pip や build など)に対して、プロジェクトのビルドに必要な情報を伝えます。このチュートリアルでは setuptools を使用しますので、pyproject.toml を開いて以下の内容を入力してください。
[build-system]
requires = ["setuptools>=42"]
build-backend = "setuptools.build_meta"
setup.cfgの編集
前はsetup.pyを作るのが公式だったようですが、今はsetup.cfgとpyproject.tomlを使うようです。中身は公式にお任せしますが、変更点についてだけ、お話します。赤枠で囲まれている所を変更します。
[metadata]
name = FEMPython
version = 0.0.1
author = sasaco
author_email = sasaicco@gmail.com
description = A small example package
long_description = file: README.md
long_description_content_type = text/markdown
url = https://github.com/sasaco/FEMPython
project_urls =
Bug Tracker = https://github.com/sasaco/FEMPython/issues
classifiers =
Programming Language :: Python :: 3
License :: OSI Approved :: MIT License
Operating System :: OS Independent
[options]
package_dir =
= src
packages = find:
python_requires = >=3.6
[options.packages.find]
where = src
buildする
次のステップは、そのパッケージの配布用パッケージを生成することです。これは Python Package Index にアップロードされるアーカイブで、pip でインストールすることができます。
最新版のbuildがインストールされていることを確認します。
python -m pip install --upgrade build
次に、pyproject.tomlがあるのと同じディレクトリから、このコマンドを実行します。
python -m build
このコマンドが完了するとdistディレクトリに2つのファイルを生成するはずです。
PyPITestへの登録
まずはじめに、あなたのパッケージをPython Package Indexにアップロードしましょう
最新版のtwineがインストールされていることを確認します。
python -m pip install --upgrade twine
PyPITestへの登録
python -m twine upload --repository testpypi dist/*
PyPITestへの登録
最後に、あなたのパッケージをPython Package Indexにアップロードしましょう
python -m twine upload dist/*