2015-11-25 1 views
8

Ich versuche pyamg in meiner virtuellen Umgebung zu installieren. Ich erhalte jedoch den folgenden Fehler. Ich benutze Mac OS.Fehler bei der Installation von pyamg: clang: error: keine solche Datei oder Verzeichnis: '"-I /.../ boost_1_59_0"'

c++: pyamg/amg_core/amg_core_wrap.cxx 
clang: error: no such file or directory: '“-I/Users/mas/PycharmProjects/kaggle-ndsb/boost_1_59_0”' 
clang: error: no such file or directory: '“-I/Users/mas/PycharmProjects/kaggle-ndsb/boost_1_59_0”' 
error: Command "c++ -fno-strict-aliasing -fno-common -dynamic -arch x86_64 -arch i386 -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -DENABLE_DTRACE -DMACOSX -DNDEBUG -Wall -Wshorten-64-to-32 -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE “-I/Users/mas/PycharmProjects/kaggle-ndsb/boost_1_59_0” -arch x86_64 -arch i386 -pipe -D__STDC_FORMAT_MACROS=1 -I/Users/mas/PycharmProjects/Whale/Zahraa5/lib/python2.7/site-packages/numpy/core/include -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c pyamg/amg_core/amg_core_wrap.cxx -o build/temp.macosx-10.10-intel-2.7/pyamg/amg_core/amg_core_wrap.o" failed with exit status 1 
+2

Diese Zitate sehen lustig für mich aus. Wo sind diese Wege festgelegt? Ich würde denken, dass sie Symbole sein sollten. – oarfish

+0

Fwiw, ich Installation mit Pip scheitert auch für mich, wenn auch mit einem anderen Fehler. – oarfish

+1

Könnten Sie weitere Informationen hinzufügen, die genau zeigen, wie Sie versuchen, Pyamg zu installieren? Versuchen Sie es um es direkt aus dem Quellverzeichnis zu erstellen (zB mit 'python setup.py install')? Der Fehler scheint durch einen ungültigen Pfad zum Boost include-Verzeichnis verursacht zu sein (' -I/Users/mas/PycharmProjects/kaggle-ndsb/boost_1_59_0'). Haben Sie Boost irgendwo installiert? Wenn ja, wo? –

Antwort

1

Eigentlich glaube ich @oarfish nannte es richtig in den Kommentaren. Das Problem scheint die lustigen und Zeichen in diesen Pfaden zu sein, die sich vom üblichen " doppelten Anführungszeichen unterscheiden.

Nachfolgend gibt die Fehler für mich:

~$ CPPFLAGS=“-I/Users/mas/PycharmProjects/kaggle-ndsb/boost_1_59_0” \ 
    LIBS=“-L/Users/mas/PycharmProjects/kaggle-ndsb/boost_1_59_0/stage/lib” \ 
    pip install pyamg 

Collecting pyamg 
    Downloading pyamg-3.0.1.tar.gz (759kB) 
    100% |████████████████████████████████| 761kB 33.2MB/s 
Installing collected packages: pyamg 
    Running setup.py install for pyamg 
... 
    creating build/temp.linux-x86_64-2.7 
    creating build/temp.linux-x86_64-2.7/pyamg 
    creating build/temp.linux-x86_64-2.7/pyamg/amg_core 
    compile options: '-D__STDC_FORMAT_MACROS=1 -I/home/alistair/.venvs/pyamg/local/lib/python2.7/site-packages/numpy/core/include -I/usr/include/python2.7 -c' 
    c++: pyamg/amg_core/amg_core_wrap.cxx 
    g++: error: “-I/Users/mas/PycharmProjects/kaggle-ndsb/boost_1_59_0”: No such file or directory 
    g++: error: “-I/Users/mas/PycharmProjects/kaggle-ndsb/boost_1_59_0”: No such file or directory 
    error: Command "c++ -pthread -DNDEBUG -g -fwrapv -O2 -Wall -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security “-I/Users/mas/PycharmProjects/kaggle-ndsb/boost_1_59_0” -fPIC -D__STDC_FO 
RMAT_MACROS=1 -I/home/alistair/.venvs/pyamg/local/lib/python2.7/site-packages/numpy/core/include -I/usr/include/python2.7 -c pyamg/amg_core/amg_core_wrap.cxx -o build/temp.linux-x86_64-2.7/pyamg/amg_core/amg_core_wrap.o" failed with exit 
status 1 

    ---------------------------------------- 
Command "/home/alistair/.venvs/pyamg/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip-build-Cl5_2g/pyamg/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" insta 
ll --record /tmp/pip-kkjcoa-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/alistair/.venvs/pyamg/include/site/python2.7/pyamg" failed with error code 1 in /tmp/pip-build-Cl5_2g/pyamg 

Während bei " Symbole die Installation erfolgreich:

~$ CPPFLAGS="-I/Users/mas/PycharmProjects/kaggle-ndsb/boost_1_59_0" \ 
    LIBS="-L/Users/mas/PycharmProjects/kaggle-ndsb/boost_1_59_0/stage/lib" \ 
    pip install pyamg 
Collecting pyamg 
    Using cached pyamg-3.0.1.tar.gz 
Installing collected packages: pyamg 
    Running setup.py install for pyamg 
Successfully installed pyamg-3.0.1 

Die Wege selbst sind irrelevant - die Zusammenstellung gelingt es, trotz der Tatsache, dass diejenigen, Verzeichnisse sind auf meinem Rechner nicht vorhanden.

4

Verwenden Anaconda oder Miniconda

conda install pyamg 

dauert nur wenige Sekunden.

Sie eine Umgebung mit erstellen:

conda create --name my_env python=2.7 

ändern hinein:

source activate my_env 

und installieren pyamg:

conda install pyamg 

Sie noch pip verwenden können Pakete installieren conda kann nicht finden.

Das Leben ist zu kurz, um Zeit mit Kompilierungsproblemen zu verbringen. ;)

+1

Das Leben ist tatsächlich viel einfacher mit Anaconda. Es hat mir so viel Zeit erspart, nachdem ich versucht habe, Bibliotheken in verschiedenen Betriebssystemumgebungen zu installieren. – Matt

2

Ich bin mir ziemlich sicher, dass die -I am Anfang der Pfade ist, was alles vermasselt. Ich wette, wenn Sie versucht haben, diese Export-Anweisungen zurück zu .bashrc hinzufügen, aber die -I und -L Präfixe dann nahm Ihre ursprüngliche Befehl würde funktionieren.

Vielleicht hatten Sie diese aus einem bestimmten Grund, ich habe das nie gesehen, aber das Entfernen dieser Präfixe würde wahrscheinlich funktionieren.

+0

Diese Pfade wären bedeutungslos ohne die Flags '-I' und '-L', mit denen Verzeichnisse angegeben werden, die dem Kopf des Suchpfads des Compilers für Header- bzw. Bibliotheksdateien hinzugefügt werden sollen. (Https: // gcc .gnu.org/onlinedocs/gcc/Verzeichnis-Optionen.html). Wie es passiert, werden die Pfade sowieso nicht benötigt (da 'pyamg' keine Boost erfordert), aber das Entfernen der '-I' und' -L' Präfixe macht keinen Sinn. –

Verwandte Themen