0

多大な努力の末、ようやく matplotlib とそのすべての依存関係を手に入れ、Snow Leopard 10.6.8 で調和して動作するようになりました。wxPython の 32 ビット インストールをバックエンドとして使用できるように、構成を少し調整したいと思います。問題は、Python 2.7.3 (python.org バージョン) の 32 ビット インストールを使用すると、numpy (matplotlib で必要) がインポートされないことです。1時間ほどグーグルで調べた結果、setup.pyと組み合わせてCFLAGSとLDFLAGSを指定することで、numpyを32ビットとしてビルドおよびインストールできると確信しました。これらのフラグが何をするものなのかははっきりしていません。これは、ダウンロードした numpy フォルダー内から試したものです。

$ CLFLAGS=-m32 LDFLAGS=-m32 python setup.py install

いくつかのエラー メッセージが表示されますが、numpy の 64 ビット互換バージョンが sitepackages フォルダーに届きます。ただし、32 ビット インタープリターを使用すると、エラーが発生します。

ImportError: dynamic module does not define init function (initmultiarray)

32 ビットの numpy をビルドできると考えるのは正しいですか?

4

2 に答える 2

4

数日間、周りを見回して髪を引っ張っていたので、見つけたものにここで貢献したいと思いました...

私は同じ問題を抱えていましたが、フラグを設定するだけではうまくいきません(しかし、これは実際に必要です)...私の場合、別の32ビットバージョンのpythonを持っているので、次のようにしました:

CFLAGS="-m32" LDFLAGS="-m32" /util/linux32/bin/python setup.py install --prefix=/util/science/gfortran-4.4.6/linux32/

(プレフィックスの gfortran のことは気にしないでください。幸運なことに、さまざまなコンパイラをテストする必要がありました.. ;))

しかし、その後、エラーが発生し、最後の行に「RuntimeError: Broken toolchain: cannot link a simple C program」と表示されます。

しかし、上にスクロールすると、次のようになりました。

gcc -pthread _configtest.o -o _configtest

_configtest.o: シンボルを読み取れませんでした: ファイル形式が間違っています

collect2: ld が 1 つの終了ステータスを返しました

_configtest.o: シンボルを読み取れませんでした: ファイル形式が間違っています

collect2: ld が 1 つの終了ステータスを返しました

失敗。

削除: _configtest.c _configtest.o

ご覧のとおり、gcc への呼び出しに「-m32」フラグはありません...

distutils install までさかのぼって追跡しました。そこにある私のために: /util/linux32/lib/python2.7/distutils/ccompiler.py

cflags値を直接取得するなど、おそらくそれよりもエレガントな解決策がありますが、私はPythonの女の子ではないので、方法がわかりません.. ;)おそらくそれを理解することができましたが、今私が気にかけているのは、最終的にインストールすることだけですnumpy in 32-bit mode..とにかく...このpythonコードの693行目を変更しました

runtime_library_dirs=None, debug=0, extra_preargs=None,

runtime_library_dirs=None, debug=0, extra_preargs=['-m32'],

(関数 link_executable 内; Python のバージョンが異なる場合に備えて...)

そしてほら... numpy in 32-bitモードの64-bitマシンに正常にインストールされました.. numpyではなくdistutilsに関連しているため、これは他のモジュールでも機能すると思います.. ;)

これが将来誰かを助け、時間を節約できることを願っています!

イヴ・マリー

于 2013-04-19T16:39:29.977 に答える
0

EPD の無料バージョンを使用してみてください (または、学界にいる場合はフル バージョンが無料です)。

http://www.enthought.com/products/epd_free.php/

これには、scipy、numpy、matplotlib などの主要な科学スタック パッケージがすべて含まれている Mac 用の 32 ビット バージョンがあります。

于 2012-06-29T16:12:24.333 に答える