0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

cibuildwheelでLinux向けのwheelビルド時につまずいた点と解決策

Posted at

cibuildwheelでLinux向けのwheelビルド時につまずいた点と解決策

問題点: 依存関係のエラー

cibuildwheelを使用してLinux向けのwheelをビルドする際、依存関係のエラーに悩まされました。

最初、CIホスト上で必要なパッケージをインストールしていましたが、ビルド時に依存関係のエラーが解消されず、試行錯誤を繰り返しました。

重要なポイント: コンテナ内での処理

cibuildwheelはビルドのために独自のコンテナを作成して処理を行います。そのため、CIホスト上でいくら依存パッケージをインストールしても、ビルドには反映されません。

この事実を認識するのに1日以上を費やしてしまいました。

解決策: before-allオプションの活用

cibuildwheelでは、before-all オプションを使用することで、ビルドが開始される前にコンテナ内で必要なパッケージをインストールできます。

CIBW_BEFORE_ALL_LINUX="yum install -y 必要なパッケージ名"

または、pyproject.tomlで以下のように設定を記述する

[tool.cibuildwheel.linux]
before-all = "yum install -y 必要なパッケージ名"

この設定を追加することで、依存関係のエラーを解消し、正常にwheelのビルドができるようになりました。

まとめ

  • cibuildwheelは コンテナ内 でビルドを行う。

  • CIホストにパッケージをインストールしても無駄。

  • CIBW_BEFORE_ALL_LINUX を活用して、コンテナ内で依存関係を解決すると、スムーズにビルドができる。

cibuildwheelを使う際には、この点に注意して効率的にビルドを進めましょう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?