1

Mac OS X Lionにnumpy、scipy、matplotlibをインストールするのに問題があるという話を聞いたことがありますが、今日まで問題はありませんでした。最近システムを更新し、最新バージョンのNumPyとSciPyをインストールしようとしました。NumPyのインストールは正常に行われ、テストは期待どおりに実行されましたが、scipyのインストールは不完全なようです。scipy.statsをインポートしようとするたびに、次のエラーが発生します。

In [1]: import scipy.stats
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-1-b66176eb2d0a> in <module>()
----> 1 import scipy.stats

    /Library/Python/2.7/site-packages/scipy/stats/__init__.py in <module>()
    326 """
    327 
--> 328 from stats import *
    329 from distributions import *
    330 from rv import *

/Library/Python/2.7/site-packages/scipy/stats/stats.py in <module>()
    191 # Scipy imports.
    192 from numpy import array, asarray, dot, ma, zeros, sum
--> 193 import scipy.special as special
    194 import scipy.linalg as linalg
    195 import numpy as np

/Library/Python/2.7/site-packages/scipy/special/__init__.py in <module>()
    525 """
    526 
--> 527 from _ufuncs import *
    528 from _ufuncs_cxx import *
    529 

ImportError: dlopen(/Library/Python/2.7/site-packages/scipy/special/_ufuncs.so, 2): no     suitable image found.  Did find:
    /Library/Python/2.7/site-packages/scipy/special/_ufuncs.so: mach-o, but wrong   architecture

githubのnumpyとscipyの最新バージョンを使用しています。何らかの理由で、_ufuncs.soのx86_64バージョンがビルドされていないようです。考えられるすべてのコンパイラフラグを試しました。ARCHFLAGS="-archi386 -arch x86_64" LDFLAGS = "-arch i386 -arch x86_64" FFLAGS = "-m64 -ff2c"

そして、私が何をしているのか、同じエラーが発生します。何かアドバイス?

更新 それで私は問題を見つけたと思います、私はscipy配布リストでフォローアップします:

scipyビルド時に作成されるライブラリのほとんどはユニバーサルファイルであり、i386とx86_64の両方をサポートすることを意味します。問題は、gfortranでコンパイルされたファイルがi386としてのみコンパイルされることです。

> find . -name *.so | xargs -I {} lipo -info {}
Architectures in the fat file: ./build/lib.macosx-10.7-intel-2.7/scipy/cluster/_hierarchy_wrap.so are: i386 x86_64 
Architectures in the fat file: ./build/lib.macosx-10.7-intel-2.7/scipy/cluster/_vq.so are: i386 x86_64 
Non-fat file: ./build/lib.macosx-10.7-intel-2.7/scipy/fftpack/_fftpack.so is architecture: i386

環境を確認しましたが、疑わしい点はありません。SciPy MacOSXページで指定されているとおり。エクスポートするだけです:CC = gcc-4.2 CXX = g ++-4.2 FFLAGS = -ff2c

別のシステムにインストールしただけで、すべてが正常に機能しました。

4

3 に答える 3

1

同様の質問はすでにここで回答されており、私はそれに同意します-virtualenvにインストールするのが最善の方法です。OS X自体は一部のPythonライブラリの特定のバージョンに依存しているため、メインのPythonインタープリターに追加のパッケージをインストールするのは少し難しい場合があります(たとえば、matplotlibで問題が発生しました)。

このブログ投稿で説明されているように、virtualenvのインストールは非常に簡単で、virtualenv(wrapper)のインストールに要約されます。

pip install virtualenv virtualenvwrapper

それを調達し、あなたが働くつもりの新しい環境を作る

source /usr/local/share/python/virtualenvwrapper.sh
mkvirtualenv system
workon system

これで、チーズショップから必要なものをすべてインストールできます。この環境が自動的に選択されるように、ファイルにsourceandworkonコマンドを追加します。.bashrc

于 2013-01-18T10:40:07.840 に答える
0

ScipySuperpackはすべてを修正します。

$ curl -o install_superpack.sh https://raw.github.com/fonnesbeck/ScipySuperpack/master/install_superpack.sh
$ sh install_superpack.sh
于 2013-01-24T17:39:34.260 に答える
0

結局、GNUコンパイラC、C ++、およびGFortranをすべて削除することになりました。次に、2.5.1バージョンを再インストールします。次に、環境変数を設定します。

CC=gcc-4.2
CXX=g++-4.2 
FFLAGS=-ff2c
ARCHFLAGS="-arch i386 -arch x86_64"

その後、Scipyと出来上がりを構築しました!ユニバーサルバイナリが表示されました:

[16:29:27] junebug:fftpack> lipo -info _fftpack.so 
Architectures in the fat file: _fftpack.so are: i386 x86_64

GNUコンパイラへのパスの何が問題だったのかはわかりませんが、複数のバージョンがインストールされていたことが原因である可能性があります。

于 2013-01-29T21:32:52.377 に答える