Pythonあれこれ 2021-02-05 - 自作モジュールをsite-packagesに追加するまで
概要
「Head First Python 第2版」を進めていった中で考えたことの記録です。

Head First Python 第2版 ―頭とからだで覚えるPythonの基本
- 作者:Paul Barry
- 発売日: 2018/03/24
- メディア: 単行本(ソフトカバー)
自作モジュールをsite-packagesに追加する手順
- 配布ファイルの説明を作成する
- 配布ファイルを作成する
- 配布ファイルをインストールする
配布ファイルあれこれ
- 配布ファイルの説明について
- 配布ファイル(及びモジュール)と同じディレクトリに、
README.txtという名前のテキストファイルとして作成する - 内容そのものは不問
- 内容が空であっても構わない
- 配布ファイル(及びモジュール)と同じディレクトリに、
- 配布ファイルについて
- 配布ファイルのインストールについて
pipコマンドで行う
setup.pyを作成する
from setuptools import setup setup( name='vsearch', version='1.0', description='The Head First Python Search Tools', author='Head First Python 2e', author_email='hfpy2e@gmail.com', url='headfirstlabs.com', py_modules=['vsearch'], )
↑setup.pyの内容の一例(Head First Python 第2版 本誌より)。ポイント説明は以下。
- 標準モジュール
setuptoolsから、setup関数をインポートする必要がある - 配布パッケージに関する各種情報は、
setuptools.setup関数のキーワード引数として与える
setuptools.setupのキーワード引数の説明は以下。
name- パッケージの名前
version- パッケージのバージョン
description- パッケージの説明
author- パッケージの作成者
author_email- パッケージ作成者の連絡先メールアドレス
url- パッケージの公式情報が記載されたリソースのURL
- GitHubのプロジェクトページなどのURLを記入する
py_modules- 公開するモジュールのファイル名
- 引数値はリストであるため、複数のファイル名を指定することもできる
↓setuptools.setupコマンドの引数の説明にあたっての参考情報。ありがとうございます。
実際にモジュールをsite-packagesに入れる
配布パッケージを生成する
C:\Users\Head First\mymodules> py -3 setup.py sdist
py -3 setup.pyコマンドは、setup.pyが所在するディレクトリにて実行するsdistは、「現在のプラットフォームにおけるデフォルトのアーカイブ形式で配布パッケージを生成する」というキーワード
C:\Users\Head First\mymodules> py -3 setup.py sdist
running sdist
running egg_info
...
creating vsearch-1.0
creating vsearch-1.0\vsearch.egg-info
...
creating dist
Creating tar archive
removing 'vsearch-1.0' (and everything under it)
↑私の環境におけるsetup.pyの実行結果
↓C:\Users\Head First\mymodulesというパスでvsearch-1.0という配布パッケージを作成した場合、配布ファイルの本体は以下の圧縮tarアーカイブとなる。
C:\Users\Head First\mymodules\dist\vsearch-1.0.tar.gz
作成した配布パッケージをsite-packagesにインストールする
C:\Users\Head First\mymodules\dist> py -3 -m pip install .\vsearch-1.0.tar.gz
Processing c:\users\rapidliner\desktop\mymodules\dist\vsearch-1.0.tar.gz
Using legacy 'setup.py install' for vsearch, since package 'wheel' is not installed.
Installing collected packages: vsearch
Running setup.py install for vsearch ... done
Successfully installed vsearch-1.0
- 既存の配布ファイルをsite-packageにインストールするには、
pipコマンドを使用する - "Successfully installed (パッケージ名)"というメッセージが出れば、パッケージのインストールは成功