Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在pip安装期间更改Biopython包含编译路径_Python_Numpy_Include_Pip_Biopython - Fatal编程技术网

在pip安装期间更改Biopython包含编译路径

在pip安装期间更改Biopython包含编译路径,python,numpy,include,pip,biopython,Python,Numpy,Include,Pip,Biopython,我正试图在我的工作机器(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 -fP

我正试图在我的工作机器(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 
是否有方法全局或显式地更新设置此安装的include path(到
/local
版本)的任何变量

更新

一年多以后,我遇到了一个类似的问题,只是这次我的系统上根本不存在
.h
文件。只需将另一台机器上的
.h
复制到

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

目录安装进行得很顺利。

多亏了@Bort,我发现这显然是一个错误(本地/用户空间安装根本不起作用)

通过在以下位置编辑Biopython
setup.py
文件

起初的 更新 然后使用pip从源代码安装(我用更新的
setup.py
文件重新压缩了文件夹,然后运行)

它已经安装好了,很好用

更新
实际上,我在另一台openSUSE机器上也遇到了类似的问题,但这次没有包含任何文件。。。为了解决这个问题,我从numpy源代码中复制了它们,并使用上面的include_dirs更新将它们输入

我假设biopython的打包是错误的,因为它没有尝试导入numpy并检查numpy。我建议打开一个bug报告。但我的系统也可能设置错误-我的numpy。它指向“/usr/lib64/python2.7/site packages/numpy/”您是否尝试了中提到的本地安装?我刚刚在本地机器上安装了一个pip——用户biopython,它工作得非常完美。当然,第8节中不是pip安装。您可以要求pip仅下载、编辑setup.py中的路径,然后手动安装。或者,您可以复制或链接相关文件,以便pip可以找到它们。只需ooc,如果要导入numpy,请打印numpy。u file_u和print numpy.get_include(),它们是否指向您机器上的不同目录?我希望您知道BLAS、numpy和scipy在open_suse.numpy.文件中的情况有多糟糕。我4天前开始使用OpenSuse(在使用Ubuntu几年之后),但没有。谢谢你的提醒。现在这让人困惑,你进口的numpy和你生产biopython的那个不一样。。。。你应该调查一下。我仍然坚持使用suse,因为一个人无法改变整个部门。但是,我们只使用我们自己的版本,所以导入的numpy文件夹缺少任何.h include文件,这些文件似乎都在/usr/local/…中。。。目录而不是/usr/lib64/。。。。我不确定这是否是故意的(在/usr/lib64/python2.7/site-packages/numpy/core/include/numpy文件夹中实际上只有两个.txt文件,仅此而已)。
#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/'],
              ))
pip install recompressed.tar.gz