Ich versuche, PyCrypto für Python 3 unter Solaris zu installieren. Unabhängig davon, ob ich es über " python3 setup.py install
" oder " pip3 install pycrypto
" mache, stoße ich auf dasselbe Problem: Es wird ein gcc aufgerufen, der nicht existiert:
python3 setup.py install
[...]
/opt/csw/bin/gcc-4.8 -pipe -m32 -march=pentiumpro -Wno-unused-result -fwrapv -Wall -Wstrict-prototypes -pipe -m32 -march=pentiumpro -I/usr/include/gmp -fPIC -std=c99 -O3 -fomit-frame-pointer -Isrc/ -I/usr/include/ -I/opt/csw/include/python3.3m -c src/_fastmath.c -o build/temp.solaris-2.11-i86pc.32bit-3.3/src/_fastmath.o
unable to execute /opt/csw/bin/gcc-4.8: No such file or directory
Jetzt weiß ich nichts über die Geschichte der Maschine, auf der ich mich befinde. Es ist möglich, dass /opt/csw/bin/gcc-4.8 irgendwann in der Vergangenheit existiert hat. Aber es geht nicht mehr. export CC=/usr/bin/gcc
(oder ein anderes gcc) behebt das Problem NICHT --- ohne Fehler wird /opt/csw/bin/gcc-4.8 aufgerufen.
Ich bin weniger daran interessiert, PyCrypto zu installieren, als vielmehr daran zu verstehen, WARUM dieser falsche Aufruf von Anfang an gemacht wird. Wo wird der Wert "/opt/csw/bin/gcc-4.8" gespeichert? Wie / woher erhält das System überhaupt die Information, dass es diesen Compiler aufrufen muss?
Das einzige, woran ich denken kann, ist, dass Python3 ursprünglich mit /opt/csw/bin/gcc-4.8 kompiliert wurde und Python3 es dauerhaft an einer Stelle eingebrannt hat, für die /opt/csw/bin/gcc-4.8 der zu verwendende Compiler ist Sachen zusammenstellen. Wenn dies der Fall ist, ist es am besten, Python3 zu entfernen und neu zu installieren, um diese fehlerhafte Abhängigkeit zu beseitigen?
quelle
distutils
? Siehe auch: stackoverflow.com/questions/5967065/…setup.py
.sudo
, oder?Antworten:
/opt/csw/bin/gcc-4.8
Pfad gibt für OpenCSW an, das mit der Oracle-Distribution vorinstalliert ist (entweder 4.8 wird gelöscht oder es gibt eine andere Version).Versuchen Sie, die Variablen
CC
undCXX
umgebungsvariablen von innen festzulegensetup.py
mitos.environ
:(4.7 ist meine Version von
g++
, stellen Sie es auf das ein, was Sie in Ihrem haben/bin
).quelle
Erstellen Sie an
/opt/csw/bin/gcc-4.8
dieser Stelle möglicherweise einen Softlink zu Ihremcc
oder demgcc
Compiler?quelle
gcc
Befehlszeilenoptionen unterschiedlich sind. Ein Skript, das die gcc-spezifischen Optionen wegwirft und dann den verfügbaren Compiler aufruft, funktioniert möglicherweise.maybe?
, als zu zeigen, wie ein solcher Link erstellt wird und wie er helfen könnte. Ich ziehe meinen Kommentar zurück, wenn ich der einzige bin, der sich so fühlt.