Estoy tratando de instalar PyCrypto para Python 3 en Solaris. Ya sea que lo haga a través de " python3 setup.py install
" o " pip3 install pycrypto
", me encuentro con el mismo problema: se realiza una llamada a un gcc que no existe:
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
Ahora, no sé nada sobre la historia de la máquina en la que estoy. Es posible que /opt/csw/bin/gcc-4.8 haya existido en algún momento en el pasado. Pero ya no. export CC=/usr/bin/gcc
(o algún otro gcc) NO soluciona el problema --- sin falta se llama /opt/csw/bin/gcc-4.8.
Estoy menos interesado en instalar PyCrypto y más interesado en entender POR QUÉ se hace esta llamada falsa para empezar. ¿Dónde se guarda el valor "/opt/csw/bin/gcc-4.8"? ¿Cómo / dónde obtiene el sistema la información para pensar que necesita llamar a ese compilador?
Lo único en lo que puedo pensar es que Python3 se compiló originalmente con /opt/csw/bin/gcc-4.8, y Python3 lo tiene quemado permanentemente en un lugar donde /opt/csw/bin/gcc-4.8 es el compilador para usar compilando cosas Si este es el caso, ¿sería mejor eliminar y reinstalar Python3 para deshacerme de esta dependencia errónea?
fuente
distutils
? Ver también: stackoverflow.com/questions/5967065/…setup.py
para comenzar.sudo
, ¿verdad?Respuestas:
/opt/csw/bin/gcc-4.8
la ruta indica para OpenCSW que viene preinstalado con la distribución de Oracle (se elimina 4.8 o hay otra versión).Intenta definir los
CC
yCXX
variables de entorno desde el interiorsetup.py
conos.environ
:(4.7 es mi versión de
g++
, configúrelo a lo que tiene en su/bin
).fuente
Cree un enlace suave en
/opt/csw/bin/gcc-4.8
esos puntos a succ
ogcc
compilador, ¿tal vez?fuente
gcc
opciones de la línea de comandos son diferentes. Sin embargo, un script que descarta las opciones específicas de gcc y luego llama al compilador disponible podría funcionar.maybe?
, en lugar de mostrar cómo crear dicho enlace y cómo podría ayudar. Retracto mi comentario si soy el único que se siente así.