2017-09-27 1571 views
12

我试图安装pysam。无法执行'x86_64-conda_cos6-linux-gnu-gcc':没有这样的文件或目录(pysam安装)

excecuting后:产生

python path/to/pysam-master/setup.py build 

此错误:

unable to execute 'x86_64-conda_cos6-linux-gnu-gcc': No such file or directory 
error: command 'x86_64-conda_cos6-linux-gnu-gcc' failed with exit status 1 

也有类似的主题,但他们似乎都解决assumig administriator权利,我没有问题。有没有办法来安装所需的文件?

免责声明:这个问题来自我以前的职位。 manually installing pysam error: "ImportError: No module named version" 但是因为它可能需要不同的方法,所以我把它作为一个问题。

+0

这已经开始出现几天以前,似乎仍然是一个问题。 – NirIzr

+0

有同样的问题。做'conda更新anaconda'解决了这个问题。有效地它需要升级到版本'3.6.2-hdfe5801_15'和Anaconda到'5.0.0.1-py36hfb0b618_1 ' – adonese

回答

9

看起来Anaconda有一个新版本(4.3.27),它将C编译器路径设置为不存在的可执行文件(这是一个令人尴尬的错误;我相信他们很快就会修复它)。我使用最新的Miniconda进行pip安装也有类似的问题,我使用4.3.21版本修复了这个问题,并确保我没有像conda update conda那样做。

查看https://repo.continuum.io/miniconda/它有发布日期和版本。

+0

可以证实这对我有用。我安装了先给我提出问题的东西,然后重新安装了spyder和所有其他工具,我没有遇到安装问题,因为我在第一次运行'conda install'后强行更新了这个问题。 – jamzsabb

+0

这是正确的。谢谢乔恩。问题是python在构建时烘烤了几个编译器相关的变量。我们正在使用新的编译器,它们是“前缀”。 gcc不存在 - 只有x86_64-conda_cos6-linux-gnu-gcc。这样做是为了避免冲突,但是以复杂化为代价(并且存在bug的风险) 新的python软件包即将面市。此问题正在通过https://github.com/conda/conda/issues/6030 – msarahan

+1

进行跟踪另外一个评论:您可以将新编译器作为gcc_linux-64软件包下载。还有gxx_linux-64和gfortran_linux-64--它们是分开的。这可能会让你更进一步。这实际上意味着与conda-build 3一起使用,但它也可能在conda-build之外很好地工作。只要确保你激活你的环境。激活设置了许多使编译器工作的重要环境变量。您可以激活根环境 - 只需输入source activation root – msarahan

-3

在某处,$PATH(例如,~/bin),做

ln -sf $(which gcc) x86_64-conda_cos6-linux-gnu-gcc 

不要把这个在系统目录中或畅达的bin目录,并记得删除的链接在问题解决的上游。 gcc --version应该是第6版

编辑:我理解对操纵系统路径注释的情绪,但也许我们可以背诵教义之前在手用一点批判性思维的实际情况。我们上面的命令实际上已经做了什么?无非是在个人的~/bin目录中放置一个名为x86_64-conda_cos6-linux-gnu-gcc的可执行文件(符号链接)。

如果把东西在一个人的个人~/bin目录爆发未来conda(它修复了C编译器的路径指向gcc它嵌入后),那么这将是与conda的错误。这个命名繁杂的编译器是否会与其他任何东西混淆?不太可能。即使有东西拿起来,它毕竟只是你的系统gcc ...

+0

现在我遇到同样的错误,但不同: 'cc1:错误:无法识别的命令行选项“-fstack-protector-strong” cc1:错误:无法识别的命令行选项“-fno-plt” pysam/libchtslib.c:1:错误:错误值(haswell)for -mtune =开关 错误:命令'x86_64-conda_cos6-linux-gnu-gcc'失败,退出状态1' –

+1

我建议不要随意用符号链接来解决这类问题。 Jon Riehl提到了这个问题存在的一个错误和一个完善的解决方案(使用早期的conda)。 –

+0

@ Sergio.pv您可能需要更新gcc。检查'gcc --version'并确保它至少是6. –

2

它现在应该是安全的更新conda。这个被固定在下面的Python包为Linux-64:

  • 蟒-3.6.2-h0b30769_14.tar.bz2
  • 蟒-2.7.14-h931c8b0_15.tar.bz2
  • 蟒-2.7 0.13 hac47a24_15.tar.bz2
  • 中的python-3.5.4-hc053d89_14.tar.bz2

问题是因为乔恩瑞尔描述的 - 我们(蟒蛇,前身为连续)建立我们所有的套餐与我们使用crosstool-ng创建了新的GCC包。这个软件包没有gcc,它有一个前缀gcc - 你看到的缺少的命令,x86_64-conda_cos6-linux-gnu-gcc。这会变成python,并且用python构建的任何扩展都会去寻找那个编译器。我们使用添加到python 3.6的_PYTHON_SYSCONFIGDATA_NAME变量修复了这个问题。我们已经支持python 2.7和3.5。您现在只能使用默认编译器(gcc)查看python,并且必须将_PYTHON_SYSCONFIGDATA_NAME设置为适当的文件名才能使用新的编译器。设置这个变量是我们将要放入编译器包的激活脚本中的东西,所以你永远不需要担心它。但是,我们可能需要一两天才能获得新的编译器软件包,因此,如果您想使用新的编译器并需要入门帮助,请在conda-build问题跟踪器上发布问题。

相关的代码更改为:

+1

Miniconda尚未更新。它将被版本化为4.3.27.1。我们会尽快安装新的安装程序。现在,如果你总是用''conda更新conda && conda更新python'',你应该得到一个好的版本。 – msarahan

+0

我得到了同样的错误:'无法执行'x86_64-conda_cos6-linux-gnu-gcc':没有这样的文件或目录'与最新版本的miniconda(来自https://repo.continuum.io/miniconda /Miniconda3-latest-Linux-x86_64.sh)。在R中安装'ggplot2'时会产生错误(通过conda安装r-base v3.4.2)。我使用conda v4.3.30和python v3.6.3。我尝试使用conda v4.3.21,但这并没有帮助。关于发生什么问题的任何想法? – sharchaea

+3

'conda create -n renv r-essentials = 1.7.0 gcc_linux-64' then'source activate renv' and away you go。我们并没有让编译器成为r-base的依赖,因为不是每个人都想从源代码编译东西。 –

4

您也可以收到同样的错误,同时安装一些R封装如果R是使用conda安装的(就像我一样)。

然后,只需执行以下命令来安装软件包:conda install gxx_linux-64以使该命令可用。

来源: https://github.com/RcppCore/Rcpp/issues/770#issuecomment-346716808

+0

感谢你们,我在最近安装的Anaconda 4.4.7上,完全更新显示没有新东西,你的答案解决了我的问题。 (需要conda安装gfortran_linux-64以及我正在安装的软件包) – JimLohse

相关问题