LoginSignup
0
0

【Python】エラー「/lib64/ld-linux-x86-64.so.2: No such file or directory」の解決方法

Posted at

概要

Python数理最適化ライブラリpulpdocker-compose上で利用したら以下のエラーになりました。

/lib64/ld-linux-x86-64.so.2: No such file or directory
'Pulp: Error while trying to execute, use msg=True for more details/usr/local/lib/python3.6/site-packages/pulp/solverdir/cbc/linux/64/cbc'

前提(Mac環境)

  • 機種ID:MacBookPro18,3
  • macOS:Monterey
  • チップ:Apple M1 Pro
  • メモリ:16GB

原因はホストOS

調べてみると、このエラーは、Docker環境下ではM1チップで実行不可能なソルバーが実行されているのではないか?とのこと。

参考:
Pythonの最適化ライブラリPuLP をM1 Mac × Dockerで動かす)

ということで、原因は、ホストOSのアーキテクチャにあることがわかりました。

$ uname -m
arm64

上記のように自分のホストOSではarm64
Dockerはデフォルトでホストのアーキテクチャに合わせたイメージを選択する。
つまり、arm64であればそれに合わせたイメージが作成されることになります。

しかし、pulpで利用されるソルバー(内部的にはC++で書かれている?)は特定のアーキテクチャに依存したバイナリを含んでいる可能性があるとのこと。ということで、Dockerイメージをエラーメッセージで表示されているlinux-x86-64にて作成するようにすれば良いのです。

解決方法

docker-compose.yaml
version: '3.3'

services:
    django:
      build: ./
      container_name: sample-django
      platform: linux/x86_64 ## これを追加する
      ports:
      ...

上記のようにlinux/x86_64を指定して再ビルドすることで、Dockerはそのサービスをx86_64アーキテクチャのLinuxで実行するようになります。

これにより、/lib64/ld-linux-x86-64.so.2ライブラリがコンテナ内に存在するようになり、エラーが解消されました。

参考
/lib64/ld-linux-x86-64.so.2: No such file or directory error

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