概要
Python
の setup.py
で bdist_wheel
コマンドを使ってパッケージをビルドする際、特にTravis CI
で「invalid command ‘bdist_wheel’」というエラーが発生することがあります。このエラーは、Python
環境に wheel
パッケージがインストールされていない場合や、setuptools
のバージョンが古い場合に起こります。このブログでは、エラーの原因とその解決策を詳しく説明します。
bdist_wheel
とは
bdist_wheel
は、Python
パッケージをWheel形式でビルドするコマンドです。Wheelは、Python
のパッケージの標準的な配布形式であり、効率的なインストールが可能です。しかし、Wheelパッケージをビルドするには、wheel
モジュールがインストールされている必要があります。
エラーの原因
このエラーが発生する主な原因は以下の通りです。
wheel
パッケージの未インストール
Python
環境にwheel
パッケージがインストールされていない場合、bdist_wheel
コマンドを実行できません。特にCI環境(例: Travis CI)では、必要なパッケージがデフォルトでインストールされていないことが多いため、このエラーが頻繁に発生します。pip
やsetuptools
のバージョンが古い
古いバージョンのpip
やsetuptools
を使っている場合、bdist_wheel
が正しく認識されないことがあります。これにより、エラーが発生します。
解決策
wheel
のインストール
最も一般的な解決方法は、wheel
パッケージを手動でインストールすることです。以下のコマンドを実行することで、wheel
をインストールできます。
pip install wheel
または、setup.py
に setup_requires=['wheel']
を追加することで、ビルド時に自動的に wheel
がインストールされるように設定できます。
from setuptools import setup
setup(
setup_requires=['wheel'],
# 他の設定...
)
pip
と setuptools
のアップグレード
古いバージョンの pip
や setuptools
が原因の場合、これらを最新バージョンにアップグレードすることが必要です。
pip install --upgrade pip setuptools
CI環境(例: Travis CI)では、このコマンドをビルドの前に追加することで、パッケージの最新バージョンを使用できます。
Travis CI設定の修正
Travis CIの設定ファイル(.travis.yml
)に以下のような行を追加することで、ビルド時に wheel
と必要な依存関係をインストールできます。
before_install:
- pip install --upgrade pip setuptools wheel
まとめ
Travis CIやその他の環境で bdist_wheel
エラーが発生する場合、wheel
パッケージのインストールや pip
のアップグレードが必要です。これらのステップを実行することで、Python
パッケージを正しくビルドし、エラーを防ぐことができます。setup.py
に setup_requires
を追加する方法も、Wheelパッケージの依存関係を自動的に解決するための有効な手段です。