9

matplotlib には numpy が既にインストールされている必要があるため、問題が発生しました。

Elastic Beanstalk 環境に他の Python パッケージをインストールするには、pip requirements.txt ファイルを使用します。セットアップ構成ではパッケージがアルファベット順に自動的にインストールされるため、常に matplotlib が最初にインストールされ、エラーが発生します。

誰かがこの問題を抱えていて、それをうまく修正する方法を知っていますか?

4

1 に答える 1

8

私はこれで数日間頭を悩ませてきましたが、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-packagesnumpy が見つかりません。

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-develscipy が必要な場合は必要でありlibpng-devel、 、freetype-devel、およびzlib-develは matplotlib に必要です。

もう 1 つの方法は、Elastic Beanstalk 上のアプリに関連付けられた ec2 インスタンスに SSH で接続し、仮想環境を起動して ( source /opt/python/run/venv/bin/activate)、自分でパッケージを pip インストールすることです。

于 2013-04-08T14:30:22.410 に答える