1

チュートリアルにあるように、私は.socythonを組み込んでいます()。私がビルドしたそのシステムでは、正常に動作しています。いいえ; しかし、私が他のシステムでそれを使用したとき、それは私に次のようなエラーメッセージを与えます python setup.py build_ext --inplaceImportError
ImportError: /home/test/test_1.so: wrong ELF class: ELFCLASS32

32ビットライブラリと64ビットライブラリの不一致だと思います。それで、どうすればそれをcythonizingしながらそれを修正できますか?

4

2 に答える 2

3

できません。64ビットシステムでを再構築し、.so常に適切なシステムで適切なバージョンを使用するようにする必要があります。これらのアーキテクチャの違いにより、cythonが32ビットライブラリを64ビットシステムで使用できるようにすることは事実上不可能です。たとえば、RubyFFIでも同じ問題が発生します。

于 2012-12-23T09:51:16.143 に答える
2

異なるアーキテクチャで同じバイナリを共有することはできません。ただし、Pythonと必要なライブラリがいずれかのシステムにインストールされている限り、Cythonによって生成された.cファイルをコンパイルするだけで、他のマシンにCythonをインストールする必要はありません(つまり、.pyxを.cに変換します)。 )。

于 2012-12-23T12:45:57.770 に答える