34

Python 2.7.3 の mac os x に NumPy を正常にビルド/インストールしました。今、scipyもビルド/インストールしたいと思います。gitハブからダウンロードしました。ディレクトリに入りました。python setup.py build を実行すると、このエラーが発生するまで動作しているように見えました:

customize Gnu95FCompiler
Could not locate executable gfortran
Could not locate executable f95
customize NAGFCompiler
customize AbsoftFCompiler
Could not locate executable f90
Could not locate executable f77
customize IBMFCompiler
Could not locate executable xlf90
Could not locate executable xlf
customize IntelFCompiler
Could not locate executable ifort
Could not locate executable ifc
customize GnuFCompiler
Could not locate executable g77
customize G95FCompiler
Could not locate executable g95
customize PGroupFCompiler
Could not locate executable pgfortran
don't know how to compile Fortran code on platform 'posix'
building 'dfftpack' library
error: library dfftpack has Fortran sources but no Fortran compiler found

NumPy 用に Fortran がインストールされていると思っていましたが、そうではありませんか? どうすればダウンロードできますか?

4

10 に答える 10

94

問題は、ビルドするために Fortran コンパイラをインストールする必要があることですscipy

また、numpyFortran サポートを無効にしてビルドされた がすでにある場合は、それを置き換える必要がある場合があります。Apple のプリインストールされた Python バージョンの一部には、そのようなnumpyビルドがプリインストールされています。


Fortran を入手する最も簡単な方法は、Homebrewを使用することです。ドキュメントにあるように、最初に Xcode とそのコマンド ライン ツールをインストールする必要があります。(コマンド ライン ツールをインストールする方法は、Xcode のほぼすべてのメジャー バージョンで変わるため、最新の説明については、リンクされたドキュメントを参照してください。) 次に、Homebrew をインストールします。インストール URL は数回変更されているため、Homebrew のホームページまたはインストール手順 ( http://brew.sh/ ) を参照してください。ただし、次のようなものになります。

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

それで:

brew install gcc

(2014 のある時点まで、gfortranは とは別のレシピだったgccので、コマンドは であったことに注意してくださいbrew install gfortran。しかし、今それを試みると、「GNU Fortran は GCC の一部として提供されるようになりました。 : brew install gcc".)


pipどうしてもインストールしたいscipyので、持っていない人は先に入手しておきましょう。少なくとも 10.7 と 10.8 にプリインストールされている Apple の Python には が含まれていますが含まれeasy_installていないpipため、これを行う最も簡単な方法は次のとおりです。

sudo easy_install pip

ただし、virtualenvグローバル インストールの代わりに を使用することを検討することもできます (その場合sudo、次のコマンドで も削除する必要があります)。

と を取得gfortranしたので、あとは次の操作pipを行うだけです。

sudo pip install --upgrade numpy
sudo pip install scipy

警告:

  • 上記の手順は、Apple のプリインストールされたバージョンの Python を対象としています。別のバージョンの Python を使用している場合は、そうしないことを検討する必要があります。パス、インストール済みパッケージなどの同期を維持することは悪夢です。これに対する例外は、Python 3.x バージョンが必要な場合です。この場合、python.org または Homebrew からインストールするのが完全に合理的です。、 などは Apple の Python 用であるためpython、衝突はありません。、など。3.x バージョンの場合。pip2.7python3pip3.3

  • を既に持っていてもpip、時代遅れかもしれないと心配している場合は、pip install --upgrade pip. (セキュリティと堅牢性の利点に加えて、これにより、一部の科学スタックまたはその他のモジュールのバイナリ ホイールとの互換性が確保されるため、時間を大幅に節約できます。)

  • Apple 以外のほとんどの Python インストール (Apple の 10.9 または 10.10 でさえ、私は確認していません) では、インストールに使用しないでください。インストール手順に従います。ただし、最初に、まだ持っていないことを確認してください。easy_installpippip

    • virtualenv/を使用している場合venv、仮想環境には既にpip.
    • Python 3.4 以降には、pipbootstrapが含まれている可能性があります (python.org インストーラーからの場合は含まれます) 。3.4+ にまだ がインストールされていない場合はpippython -m ensurepipインストールすることをお勧めします。
    • Homebrew や ActiveState などの一部のサードパーティのインストールには、pip.
  • Python 3.3 以降では、 のvenv代わりに組み込みの を使用することをお勧めしますvirtualenv

  • MacPorts、Fink、gentoo-alt などを使用している場合はscipy、パッケージ マネージャーに付属のパッケージをインストールする必要があります。これにより、必要なものがすべてドラッグされます (Python と GCC の再構築を含む場合もあります)。

  • Enthought や ActiveState などのサードパーティのバイナリ インストールにはscipy、必要なものがすべて含まれている場合があります。そうでない場合、手順は基本的に上記と同じですが、どの手順をスキップするか、従うか、どの手順を実行するかなどを推測する必要がありますsudo


Python 2.7 の Apple 以外のビルドを使用していて、PATH の問題を回避したい場合は、次の 2 つのことを行う必要があります。

pipまず、スクリプトまたはバイナリ (それ自体を含む) を含む Python パッケージを複数の Python にインストールしないでください。たとえば、ipythonApple 2.7 と Homebrew 2.7 の両方をインストールすると、両方とも と という名前のスクリプトを作成しようとし/usr/local/bin/ipythonます/usr/local/bin/ipython-2.7。運が良ければ、1 つのインストールが失敗します。そうしないと、両方とも成功し、一方が他方を上書きしてしまい、上書きされたバージョンを実行する方法がなくなります。

次に、別の Python のスクリプトとバイナリへのパスが PATH で Apple のパスよりも前に来るようにします。インストールした代替 Python と従った手順に応じて、これは次のようになります。

  • /usr/local/bin
  • /Library/Frameworks/Python.framework/Versions/2.7/bin
  • /usr/local/share/python2.7/bin
  • /usr/local/Cellar/python/2.7.3/bin
  • 他の何か

パスが何であれ、PATH 変数を編集する必要があります。

GUI アプリ (および LaunchAgent など) に影響を与えたい場合、これを行う方法はサポートされていないようですが、非推奨のQA1067は Lion で引き続き機能するようです。これは、Homebrew FAQPython FAQが提案するものでもあります。

コマンド ライン セッション (Terminal.app とリモート ssh の両方) のみに関心がある場合は、代わりに、適切なプロファイル ファイルを編集するという標準の Unix 操作を行うことができます。どのプロファイル ファイルが適切かは、何に影響を与えたいかによって異なります。(すべてのユーザーか、1 人のユーザーだけか? bash か任意のシェルか?など。) どれが必要かわからない場合は、調査を行う必要があります。わざわざ勉強したくないのなら、ただやってみて~/.profile、それがあなたが望んでいたものではなかったとしても文句を言わないでください.

/usr/binいずれにせよ、適切なパスがPATH の前にあることを確認する必要があります。したがって、たとえば、次を に追加できます~/.profile

PATH=/usr/local/bin:$PATH
export PATH

(もちろん、有効にする前に、新しいターミナル シェルを作成するか、スクリプトをソースする必要があります。)

を使用している場合はhomebrewbrew doctor正しいかどうかがわかります。

于 2013-02-11T22:37:41.983 に答える
3

あなたの実際の問題は、Sourceforge からの断続的なダウンロードの失敗だったようです。

curl: (33) HTTP server doesn't seem to support byte ranges. Cannot resume. Error: Download failed: downloads.sf.net/project/machomebrew/Bottles/…

再試行すると、Homebrew はこのエラーから自動的に回復するはずですbrew install gfortran。それで、それが最初に試すことです。

それでも問題が解決しない場合brew doctorは、 で問題が見つかるかどうかbrew install -d gfortranを確認し、部分的にダウンロードされたファイルが保存されている場所を確認して、手動で削除して再試行できるようにします。

他のすべてが失敗した場合は、 を使用して強制的にボトルを使用しないようにすることができます--build-from-source。もちろん、ソースからのビルドは、バイナリ ボトルのインストールよりもはるかに時間がかかりますが、同じ結果が得られるはずです。

于 2013-02-12T00:52:58.913 に答える
1

I met the same problem, using following steps:
1. brew install gfortran
2. pip install scipy

then it's ok.

于 2013-07-01T00:54:11.053 に答える
0

Xcode と OSX のバージョンが重要だと思います。Xcode: 6.4 と Os X 10.11.1 を使用していましたが、同じエラー メッセージが引き続き表示されました (gfortran が見つからないなど)。@abarnert による徹底的な回答を含め、多くのことを試しましたが、解決策は Xcode を (7.1.1 に) アップグレードすることでした。

于 2015-11-26T01:10:18.963 に答える
-1

homebree がインストールされているので試してみます: $brew install gfortran これでうまくいくといいのですが

于 2013-02-11T21:40:57.487 に答える
-2

OSX10.7にクリーンインストールするための詳細な手順は次のとおりです。もし私があなたなら、自分でソースをダウンロードしてビルドしようとするのではなく、このルートに行きます。

http://www.thisisthegreenroom.com/2011/installing-python-numpy-scipy-matplotlib-and-ipython-on-lion/

于 2013-02-11T21:57:01.297 に答える