web-dev-qa-db-ja.com

SciPyビルド/インストールMac Osx

NumPyをpython 2.7.3のMac OS Xで正常にビルド/インストールしました。今度はscipyもビルド/インストールしたいです。gitハブからダウンロードしました。ディレクトリに行きました。 Ran 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がインストールされていると思っていました...どうやってダウンロードしますか?

33
Megan

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

また、Fortranサポートを無効にしてビルドされたnumpyが既にある場合は、それを交換する必要があります。 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年のある時点まで、gfortrangccとは別のレシピであったため、コマンドはbrew install gfortranでした。しかし、今すぐ試してみると、「 GNU FortranはGCCの一部として提供されるようになり、brew install gcc "でインストールできます。)


本当に pip を使用してscipyをインストールしたいので、もしそれがなければ、最初に入手してください。 AppleのプリインストールされたPython(少なくとも10.7および10.8)にはeasy_installが含まれますが、pipは含まれません。そのための最も簡単な方法は次のとおりです。

Sudo easy_install pip

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

gfortranpipが得られたので、あとはこれだけです:

Sudo pip install --upgrade numpy
Sudo pip install scipy

警告:

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

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

  • ほとんどの非Apple Pythonインストール(および10.9または10.10のAppleの場合もあります。私はチェックしていません)では、notを使用する必要がありますeasy_installpipをインストールします。 pipインストール手順 に従ってください。しかし、最初にあなたがまだ持っていないことを確認してください。

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

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

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


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

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

第二に、代替PythonのスクリプトとバイナリへのパスがAppleのPATHの前に来るようにしてください。どの代替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アプリ(およびLaunchAgentsなど)に影響を与えたい場合、これを行うためのサポートされている方法はもはやありませんが、非推奨の QA1067 はまだLionで機能しているようです。 Homebrew [〜#〜] faq [〜#〜] および Python FAQ が示唆するものでもあります。

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

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

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

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

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

90
abarnert

実際の問題は、Sourceforgeからの断続的なダウンロードの失敗にすぎないようです。

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

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

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

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

3
abarnert

2014年5月20日の時点で、brewを使用している場合、Fortranはgccの一部としてインストールされます。別個のFortranパッケージは必要ありません。 numpyをインストールするのに私が働いたのは次のとおりです:

  1. abamertの回答に従ってbrewをインストールします(または http://brew.sh/ を参照)
  2. gcc(brew install gcc
  3. brewのgccが正しいものであることを確認します(which gccは/ usr/local/bin/gccを指す必要があります)
  4. export ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-futurepip install numpyの問題-RuntimeError:Broken toolchain:単純なCプログラムをリンクできない)を参照してください
  5. pip install numpy
3
Mark Chackerian

この問題はあまり複雑ではないと思います。

1)pipをインストールする

cd /Library/Frameworks/Python.framework/Versions/ ln -s 2.7現在

cd/usr/bin rm -f python ln -s /Library/Frameworks/Python.framework/Versions/Current/bin/python python

2) https://pypi.python.org/pypi/setuptools#files Sudo sh setuptools-0.6c11-py2.7.EggからEggをダウンロードします

3)次のリンクからgfotranをダウンロードしてインストールします。 http://r.research.att.com/tools/

4)その後、次のように入力する必要があります:Sudo pip install -U scipy Sudo pip install -U numpy Sudo pip install -U matplotlib

うまくいけば、あなたが持ちたいものはすべて揃っているはずです。

2
BITTNT

次の手順を使用して、同じ問題に遭遇しました。
1。 gfortranをインストールする
2。 pip install scipy

それは大丈夫です。

1
rchardzhu

gfortranがインストールされていて、バイナリはgfortran-4.2でした。そのため、SciPyをインストールしようとするたびにgfortranを使用しようとしていたため、コンパイラが見つかりませんでした。

gfortran-4.2からへのシンボリックリンクを作成しましたgfortran.

シンボリックリンクを作成する場所を見つけるには、次を実行します。

$ which gfortran-4.2
/usr/local/bin/gfortran-4.2

それからシンボリックリンク:

ln -s /usr/local/bin/gfortran-4.2 /usr/local/bin/gfortran
1
André Augusto

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

0
dhltp

OSXヨセミテおよびおそらく古いosxリリースでも、pip install scipyを実行する前にfortranコンパイラをダウンロードしてインストールすることをお勧めします。最新のFortranコンパイラをダウンロードするには、次のリンクにアクセスしてください。

https://gcc.gnu.org/wiki/GFortranBinaries#MacOS

0
Masum