2017-09-27 4 views
12

Ich versuche Pysam zu installieren.kann 'x86_64-conda_cos6-linux-gnu-gcc' nicht ausführen: Keine solche Datei oder kein Verzeichnis (Pysam-Installation)

Nach excecuting:

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

Dieser Fehler wird erzeugt:

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 

Es gibt ähnliche Themen, aber sie scheinen alle das Problem assumig administriator Rechte anzusprechen, die ich nicht habe. Gibt es eine Möglichkeit, die benötigten Dateien zu installieren?

DISCLAIMER: Diese Frage stammt von einem früheren Post von mir. manually installing pysam error: "ImportError: No module named version" Aber da es einen anderen Ansatz erfordern könnte, habe ich es zu einer Frage gemacht.

+0

Das vor ein paar Tagen begonnen hat, erscheint und scheint immer noch ein Problem zu sein. – NirIzr

+0

Hatte das gleiche Problem. 'Conda Update Anaconda' löst das Problem. Effektiv brauchte es Python auf Version '3.6.2-hdfe5801_15' und Anaconda auf '5.0.0.1-py36hfb0b618_1 ' – adonese

Antwort

9

Es sieht so aus, als hätte Anaconda eine neue Version (4.3.27), die den C-Compiler-Pfad auf eine nicht existierende ausführbare Datei setzt (ein ziemlich peinlicher Bug; ich bin mir sicher, dass sie ihn bald beheben werden). Ich hatte ein ähnliches Problem mit Pip-Installation mit der neuesten Miniconda, die ich mit der Version 4.3.21 behoben habe und sicherstellen, dass ich nicht so etwas wie conda update conda tat.

Siehe https://repo.continuum.io/miniconda/, die Versionsdaten und -versionen hat.

+0

zu aktualisieren Kann bestätigen, dass dies für mich funktionierte. Ich habe installiert, was mir zuerst Probleme gab, dann spyder und alle anderen Tools neu installiert, die ich keine Probleme hatte zu installieren, da ich gezwungen wurde, nach dem ersten Mal zu aktualisieren, führte ich 'conda install' – jamzsabb

+0

Dies ist korrekt. Danke Jon. Das Problem ist, dass Python mehrere Compiler-bezogene Variablen zum Zeitpunkt der Erstellung einbindet. Wir verwenden neue Compiler und sie werden "vorangestellt". gcc existiert nicht - nur x86_64-conda_cos6-linux-gnu-gcc. Dies geschieht, um Konflikte zu vermeiden, aber auf Kosten der Komplikation (und des Risikos von Fehlern) Neue Python-Pakete werden in Kürze verfügbar sein. Dieses Problem wird unter https://github.com/conda/conda/issues/6030 verfolgt. – msarahan

+1

Ein zusätzlicher Kommentar: Sie können die neuen Compiler als Paket gcc_linux-64 herunterladen. Es gibt auch gxx_linux-64 und gfortran_linux-64 - sie sind aufgeteilt. Das könnte dich weiterbringen. Eigentlich sollte es mit conda-build 3 verwendet werden, aber es wird wahrscheinlich auch außerhalb von conda-build funktionieren. Stellen Sie nur sicher, dass Sie Ihre Umgebung aktivieren. Die Aktivierung setzt viele wichtige Umgebungsvariablen, die den Compiler zum Laufen bringen. Sie können die root-Umgebung aktivieren - geben Sie einfach '' source activate root'' ein. – msarahan

-3

Irgendwo in Ihrem $PATH (zum Beispiel ~/bin), tun

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

Diese Mitteilung nicht ein Systemverzeichnis oder Conda des bin-Verzeichnis setzen in, und erinnere mich an den Link zu entfernen, wenn das Problem behoben ist stromaufwärts. gcc --version soll Version 6.

EDIT sein: ich das Gefühl in den Kommentaren gegen Manipulation von Systempfaden zu verstehen, aber vielleicht können wir ein wenig kritische Denken für den konkreten Fall in der Hand vor dem Rezitieren Lehre verwenden. Was haben wir mit dem obigen Befehl eigentlich gemacht? Nichts mehr als eine ausführbare Datei (Symlink) namens x86_64-conda_cos6-linux-gnu-gcc im persönlichen Verzeichnis ~/bin.

Wenn etwas in dem persönlichen Verzeichnis ~/bin setzen brach Zukunft conda (nachdem es den C-Compiler Pfad fixiert zu gcc es bettet Punkt), dann wäre das ein Bug mit conda sein. Würde die Existenz dieses Compiler-Compilers mit etwas anderem verwechselt werden? Unwahrscheinlich auch nicht. Selbst wenn etwas es abholen würde, ist es nur Ihr System gcc nach allem ...

+0

Jetzt komme ich zum gleichen Fehler aber anders: 'cc1: Fehler: unerkannte Befehlszeilenoption" -fstack-protector-stark " cc1: Fehler: unerkannte Befehlszeilenoption "-fno-plt" pysam/libchtslib.c: 1: Fehler: schlechter Wert (Haswell) für -mtune = Schalter Fehler: Befehl 'x86_64-conda_cos6-linux-gnu-gcc' fehlgeschlagen mit Exit-Status 1 ' –

+1

Ich empfehle nicht, zufällig mit Symlinks zu fummeln, um diese Art von Problem zu lösen. Jon Riehl erwähnte die Existenz eines Bugs und eine solide Lösung für das Problem (unter Verwendung einer früheren Conda). –

+0

@ Sergio.pv Sie müssen wahrscheinlich gcc aktualisieren. Überprüfen Sie 'gcc --version' und stellen Sie sicher, dass es mindestens 6 ist. –

2

Es sollte jetzt sicher sein, Conda zu aktualisieren. Dies wird in den folgenden Python-Pakete für Linux-64 festgelegt:

  • Python-3.6.2-h0b30769_14.tar.bz2
  • Python-2.7.14-h931c8b0_15.tar.bz2
  • Python-2.7 .13-hac47a24_15.tar.bz2
  • python-3.5.4-hc053d89_14.tar.bz2

Die Frage war, wie Jon Riehl beschrieben - wir (Anaconda, früher Continuum) mit all unseren Paketen bauen neues GCC-Paket, das wir mit crosstool-ng erstellt haben. Dieses Paket hat kein gcc, es hat ein vorangestelltes gcc - der fehlende Befehl, den du siehst, x86_64-conda_cos6-linux-gnu-gcc.Dies wird in Python eingebettet, und jede Erweiterung, die mit diesem Python erstellt wird, sucht nach diesem Compiler. Wir haben das Problem mit der Variablen _PYTHON_SYSCONFIGDATA_NAME behoben, die zu Python 3.6 hinzugefügt wurde. Wir haben das nach Python 2.7 und 3.5 zurückportiert. Sie werden Python jetzt nur mit Standardcompilern (gcc) sehen, und Sie müssen _PYTHON_SYSCONFIGDATA_NAME auf den entsprechenden Dateinamen setzen, damit die neuen Compiler verwendet werden. Diese Variable wird in die Aktivierungsskripte für das Compilerpaket eingefügt, sodass Sie sich nie darum kümmern müssen. Es kann jedoch ein oder zwei Tage dauern, bis neue Compiler-Pakete herauskommen. Wenn Sie die neuen Compiler verwenden möchten, müssen Sie Probleme mit dem Conda-Build-Issue-Tracker veröffentlichen.

Relevante Codeänderungen sind bei:

+1

Miniconda wurde noch nicht aktualisiert. Es wird als 4.3.27.1 versioniert. Wir werden neue Installer haben, wenn wir können. Wenn Sie "conda update conda && conda update python" immer noch tun, sollten Sie eine gute Version bekommen. – msarahan

+0

Ich bekomme den gleichen Fehler: 'nicht ausführbar x86_64-conda_cos6-linux-gnu-gcc ': Keine solche Datei oder Verzeichnis mit der neuesten Version von miniconda (von https://repo.continuum.io/miniconda /Miniconda3-latest-Linux-x86_64.sh). Der Fehler tritt bei der Installation von 'ggplot2' in R auf (r-base v3.4.2, installiert über Conda). Ich verwende Conda v4.3.30 und Python v3.6.3. Ich habe versucht, mit conda v4.3.21, aber das hat nicht geholfen. Irgendwelche Ideen, was schief läuft? – sharchaea

+3

'conda create -n renv r-essentials = 1.7.0 gcc_linux-64' dann' source activate renv' und los gehts. Wir haben die Compiler nicht von r-base abhängig gemacht, weil nicht jeder aus der Quelle kompilieren will. –

4

Sie können auch den gleichen Fehler erhalten, während einige R-Pakete zu installieren, wenn R wurde mit Conda installiert (so wie ich).

Dann installieren Sie einfach das Paket durch Ausführen von: conda install gxx_linux-64, um diesen Befehl verfügbar zu haben.

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

+0

Danke dafür, ich bin auf Anaconda 4.4.7, vor kurzem installiert, eine vollständige Aktualisierung zeigte nichts neues, löste Ihre Antwort mein Problem. (benötigt um 'conda installiere gfortran_linux-64' auch für das Paket, das ich installiert habe) – JimLohse

Verwandte Themen