matplotlib には numpy が既にインストールされている必要があるため、問題が発生しました。
Elastic Beanstalk 環境に他の Python パッケージをインストールするには、pip requirements.txt ファイルを使用します。セットアップ構成ではパッケージがアルファベット順に自動的にインストールされるため、常に matplotlib が最初にインストールされ、エラーが発生します。
誰かがこの問題を抱えていて、それをうまく修正する方法を知っていますか?
matplotlib には numpy が既にインストールされている必要があるため、問題が発生しました。
Elastic Beanstalk 環境に他の Python パッケージをインストールするには、pip requirements.txt ファイルを使用します。セットアップ構成ではパッケージがアルファベット順に自動的にインストールされるため、常に matplotlib が最初にインストールされ、エラーが発生します。
誰かがこの問題を抱えていて、それをうまく修正する方法を知っていますか?
私はこれで数日間頭を悩ませてきましたが、requirements.txt ファイルを使用して matplotlib/scipy/scikit-learn をインストールする場合は、一度に 1 つのモジュールを実行する必要があるようです。
私が理解できたのは、Elastic Beanstalk では、requirements.txt ファイル全体が正常に処理されるまで、仮想環境の site-packages ディレクトリにパッケージがインストールされないということです。
たとえば、私が行っていたように numpy と scipy を同時にインストールしようとすると、scipy が特定の numpy モジュール (具体的には numpy.distutils.core) を見つけることができないため、失敗します。Numpy は/opt/python/run/venv/build
待機していますが、pip は調べていて、/opt/python/run/venv/lib/python2.6/site-packages
numpy が見つかりません。
requirements.txt ファイルで numpy のみを使用して 1 つのコミットを作成し、これを Elastic Beanstalk にプッシュする必要があります。これが成功すると、numpy モジュールが適切な場所に配置され、要件を scipy または matplotlib に更新して 2 回目のコミットを行うことができます。
.ebextensions の構成ファイルには注意してください。すべての依存関係をリストする必要があります。具体的には、.ebextensions/myapp.config
あなたの一番上にあるはずです
packages:
yum:
gcc-c++: []
gcc-gfortran: []
python-devel: []
atlas-sse3-devel: []
lapack-devel: []
libpng-devel: []
freetype-devel: []
zlib-devel: []
atlas-sse3-devel
およびlapack-devel
scipy が必要な場合は必要でありlibpng-devel
、 、freetype-devel
、およびzlib-devel
は matplotlib に必要です。
もう 1 つの方法は、Elastic Beanstalk 上のアプリに関連付けられた ec2 インスタンスに SSH で接続し、仮想環境を起動して ( source /opt/python/run/venv/bin/activate
)、自分でパッケージを pip インストールすることです。