3

作業マシン (OpenSuse x86_64) に PIP を使用して Biopython (Python パッケージ) をインストールしようとしています。

numpy ヘッダーを使用してコンパイルを試行するまでは、すべてうまくいきます

gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -fPIC -I/usr/lib64/python2.7/site-packages/numpy/core/include -I/usr/include/python2.7 -c Bio/Cluster/clustermodule.c -o build/temp.linux-x86_64-2.7/Bio/Cluster/clustermodule.o

どの時点で失敗するか

Bio/Cluster/clustermodule.c:2:31: fatal error: numpy/arrayobject.h: No such file or directory

入っているからnumpy/arrayobject.hです

/usr/local/lib64/python2.7/site-packages/numpy/core/include/

ではない

/usr/lib64/python2.7/site-packages/numpy/core/include 

インクルード パス (バージョンへの) を設定している変数を/local、このインストールに対してグローバルまたは明示的に更新する方法はありますか?

アップデート

1 年以上後、私は同様の問題に直面しましたが、今回は.hシステムにファイルが存在しなかっただけです。を.h別のマシンから

/usr/lib64/python2.7/site-packages/numpy/core/include/numpy

ディレクトリのインストールはうまくいきました。

4

1 に答える 1

2

@Bort のおかげで、これは明らかに既知のエラーであることがわかりました(ローカル/ユーザー空間のインストールが機能していませんでした)。

以下の場所にある Biopythonsetup.pyファイルを編集することで

オリジナル

#Add extensions that requires NumPy to build
if is_Numpy_installed():
   import numpy
   numpy_include_dir = numpy.get_include()
   EXTENSIONS.append(
      Extension('Bio.Cluster.cluster',
              ['Bio/Cluster/clustermodule.c',
               'Bio/Cluster/cluster.c'],
              include_dirs=[numpy_include_dir],
              ))
   EXTENSIONS.append(
      Extension('Bio.KDTree._CKDTree',
              ["Bio/KDTree/KDTree.c",
               "Bio/KDTree/KDTreemodule.c"],
              include_dirs=[numpy_include_dir],
              ))
   EXTENSIONS.append(
      Extension('Bio.Motif._pwm',
              ["Bio/Motif/_pwm.c"],
              include_dirs=[numpy_include_dir],
              ))

更新しました

#Add extensions that requires NumPy to build
if is_Numpy_installed():
   import numpy
   numpy_include_dir = numpy.get_include()
   EXTENSIONS.append(
      Extension('Bio.Cluster.cluster',
              ['Bio/Cluster/clustermodule.c',
               'Bio/Cluster/cluster.c'],
              include_dirs=[numpy_include_dir, '/usr/local/lib64/python2.7/site-packages/numpy/core/include/'],
              ))
   EXTENSIONS.append(
      Extension('Bio.KDTree._CKDTree',
              ["Bio/KDTree/KDTree.c",
               "Bio/KDTree/KDTreemodule.c"],
              include_dirs=[numpy_include_dir, '/usr/local/lib64/python2.7/site-packages/numpy/core/include/'],
              ))
   EXTENSIONS.append(
      Extension('Bio.Motif._pwm',
              ["Bio/Motif/_pwm.c"],
              include_dirs=[numpy_include_dir, '/usr/local/lib64/python2.7/site-packages/numpy/core/include/'],
              ))

setup.py次に、pipを使用してソースからインストールします(更新されたファイルを含むフォルダーを再圧縮して実行しました)

pip install recompressed.tar.gz

これでインストールは完了です。

更新 私は実際に別のopenSUSEマシンでこれと非常によく似た問題を抱えていましたが、今回はどこにもインクルードファイルがありませんでした.

于 2013-01-14T18:30:28.793 に答える