本日は Python の技術調査枠です。
Python で自作モジュールを作成してPythonにインストールする手順を記事にします。
setup.py
setup.py は一般的に Python のモジュール定義を記述するスクリプトに利用されるファイル名です。
モジュールの各種設定を本スクリプトファイルに定義し、インストールの際に実行します。
インストールの定義は setup() 関数で定義します。
Pythonスクリプトで書いたモジュールの作成
インストールを行うモジュールとして、以下の Python スクリプトを作成しました。
"Hello World"を標準出力する関数と、数値の引数を受け取り足し算結果を返す関数を定義します。
・hello.py
# 標準出力テスト def printstr(): # "hello world"を出力 print("hello world") return # 引数戻り値テスト def sumarg(arg_x=0, arg_y=0): # 引数を足し算して返却する return arg_x + arg_y
上記のスクリプトを登録する際は以下のような setup.py を用意します。
・setup.py
from setuptools import setup setup( name="hello", # モジュールの名前 version="1.0.0", # モジュールのバージョン author="holomon", # モジュールの作者 url="", # モジュールのホームページ description="description", # モジュールの説明(help(hello)で確認可能) install_requires=[], # 依存パッケージ([pip install -e .]実行時に一緒にインストール) extras_require={ "develop" : [], # 拡張依存パッケージ([pip install -e . develop]実行時に一緒にインストール) } )
モジュールの名前は対象スクリプトのファイル名から .py を除いた部分です。
今回は hello.py を対象とするので hello がモジュールの名前となります。
インストールの実行
作成した setup.py と hello.py を同じディレクトリに配置します。
今回はテストのため、インストールを行う Python を直接指定します。
例えば以下のパスの Python.exe を利用して setup.py を実行した場合、実行した Python ディレクトリにモジュールがインストールされます。
D:\Python\SetupPythonTest\Python37\python.exe
setup.py を配置したディレクトリで、Shiftキー+右クリックから[PowerShellウィンドウをここで開く]を実行します。
PowerShell が起動したら、以下のコマンドを実行して hello.py をインストールします。
python .\setup.py install
成功すると、実行した Python ディレクトリの以下のパスに hello-(バージョン)-(ビルド環境).egg ファイルが追加されます。
初めて install を実施した際は、追加モジュールへのパスを示す easy-install.pth も追加されています。
(Pythonディレクトリ)\Lib\site-packages
easy-install.pth には以下のようなモジュールへのパスが追加されています。
./hello-1.0.0-py3.7.egg
モジュールの実行確認
python を起動して以下のコマンドを実行します。
import hello print(hello)
インストールしたモジュールへのパスが表示されればインストールは成功しています。
続けて以下の通り、関数を実行してみます。
hello.printstr() hello.sumarg(1,3)
それぞれ"Hello World"の出力と、足し算の結果が出力されれば成功です。
次回はC言語を使って拡張モジュール関数を作成してみます。
bluebirdofoz.hatenablog.com