インストールプロセスでスクリプトが実行されるようにパッケージを設定しようとしました。したがって、私はsetuptools.commandから継承し、カスタムクラスActionOnInstall
を作成して、パッケージがインストールされたときに処理を行います。このクラスは、hereのように、setuptools setup()
引数cmdclass
によって呼び出されます。cmdclass引数に関してpip3と `python3 setup.py install`の違い
なsetup.pyファイルの最小限の例が正常に実行されますがActionOnInstall.run()
で指定されたコマンドを実行しません
pip3 install <path-to-dir-with-setup.py>
を実行することにより、パッケージの構築
from setuptools import find_packages, setup
from setuptools.command.install import install
class ActionOnInstall(install):
def run(self):
print("Call install.run(self) works!")
install.run(self)
setup(name='name',
cmdclass={
'install': ActionOnInstall})
のように見えます。より直接的にこのsetup.pyを
python3 setup.py install
ActionOnInstall.run()
で指定されたコマンドを実行して呼び出します。
次に、パッケージをインストールするためのこれら2つのアプローチの実際の違いは何かを尋ねました。他の投稿からも分かるように、pipはパッケージのインストールを簡単にします。しかし、これらの両方のアプローチがsetup()
のcmdclass
引数を異なる方法で扱う方法については説明しません。したがって、皆さんからのご意見をお待ちしております。