2017-09-27 1569 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

相關問題