CコードとNumPyの依存関係を持つPythonパッケージを作成しようとしていますが、これを実現する最も簡単な方法はnumpy.distutils
だと思いました。これまでのところ私は、同じディレクトリ内のファイルsetup.py
numpy.distutilsのアーキテクチャーの奇妙な選択
from numpy.distutils.core import setup
from numpy.distutils.misc_util import Configuration
from distutils.extension import Extension
ext_modules=[
Extension("test",
sources=["test.c"],
libraries=["gmp"],
)
]
configuration = Configuration(
package_name = "test",
ext_modules = ext_modules,
)
setup(**configuration.todict())
と空test.c
を持っています。
しかし、いくつかの理由で、それは、C関数を呼び出すに
ld: warning: ignoring file /usr/local/lib/libgmp.dylib,
file was built for x86_64 which is not the architecture being linked (i386):
/usr/local/lib/libgmp.dylib
警告し、さらに問題につながる、(システムは、Mac OS Xで)コンパイル時に厄介な-arch i386 -arch x86_64
フラグを追加します。
どうすればその問題を解決できますか?どういうわけかターゲットアーキテクチャを指定できますか?
UPD。現在はやりました
ARCHFLAGS="-arch x86_64" python setup.py build_ext --inplace
しかし、私はそれを展開できるように、アーキテクチャの先験的な知識なしにどのプラットフォームでも動作したいと思います。
まあ...それは確かに他のオプションがないようです。 –