2011-08-08 21 views
5

Estoy tratando de instalar en un lugar AMFASTvirtual_env basado en un archivo de dependencias. Tengo en mi export ARCHFLAGS="-arch x86_64" .profile local y han confirmado su presencia mediante la ejecución de env y verlo en la lista. Sin embargo, cada vez que ejecuto PIP apuntando al entorno virtual, gcc está configurado para apuntar a i386 y ppc. También he intentado anteponiendo env ARCHFLAGS="-arch i386 -arch x86_64" y env ARCHFLAGS="-arch x86_64" al comando PIP, pero gcc siempre tiene las banderas -arch i386 -arch ppc -arch x86_64. ¿Cómo puedo obtener gcc para leer mis archflags?¿Por qué GCC ignora ARCHFLAGS en Snow Leopard?

ejemplo:

sudo pip install -E ~/Documents/project/project_env -r ~/Documents/project/trunk/django/dependencies.txt` 

salida
...

Running setup.py install for amfast 
    building 'amfast.encode' extension 
    gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch i386 -arch ppc -arch x86_64 -pipe -I/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -c amfast/ext_src/encoder.c -o build/temp.macosx-10.6-universal-2.6/amfast/ext_src/encoder.o 
    /usr/libexec/gcc/powerpc-apple-darwin10/4.2.1/as: assembler (/usr/bin/../libexec/gcc/darwin/ppc/as or /usr/bin/../local/libexec/gcc/darwin/ppc/as) for architecture ppc not installed 
    Installed assemblers are: 
    /usr/bin/../libexec/gcc/darwin/x86_64/as for architecture x86_64 
    /usr/bin/../libexec/gcc/darwin/i386/as for architecture i386 
    amfast/ext_src/encoder.c:2121: fatal error: error writing to -: Broken pipe 
    compilation terminated. 
    lipo: can't open input file: /var/tmp//ccoYlfhN.out (No such file or directory) 
    error: command 'gcc-4.2' failed with exit status 1 
+0

lo que el arco es su pitón - pip etc va a recoger hasta que – Mark

Respuesta

14

más probable es que el problema es que la variable ARCHFLAGS medio ambiente no está siendo atravesado por sudo. De forma predeterminada, algunas versiones de sudo filtran la mayoría de las variables de env como medida de seguridad (consulte man sudo). Pruebe a ejecutar de esta manera:

sudo ARCHFLAGS="-arch x86_64" pip install -E ~/Documents/project/project_env -r ~/Documents/project/trunk/django/dependencies.txt` 
+1

si no le importa las implicaciones de seguridad, se puede añadir una línea a/etc/sudoers ejecutando "sudo visudo "y después de las líneas con Predeterminado env_keep + =" ... "agregue la línea Predeterminado env_keep + =" ARCHFLAGS ". De esta forma, ARCHFLAGS será preservado por sudo. – blootsvoets

Cuestiones relacionadas