Pregunta

Estoy intentando construir Python 2.6.2 desde las fuentes en el sistema Linux. Tiene instalados en ncurses curses.h locales / y / usr / está en / include / ncurses / usr / local. Así curses.h no se encuentra en la ruta de inclusión, y esos paquetes fallan en la construcción de Python.

¿Cuál es la mejor solución a esto? Se supone Python para incluir ? Deben / / include / usr / local ncurses estar en la ruta de inclusión? ¿Debería haber un enlace desde los archivos en el directorio ncurses a / usr / local / include?

O hay alguna solución más simple?

¿Fue útil?

Solución

Con muchos paquetes de código abierto, se puede establecer:

export CPPFLAGS="-I/usr/local/include"

o incluso:

export CPPFLAGS="-I/usr/local/include/ncurses"

antes de ejecutar el script de configuración. No he compilado Python recientemente suficiente para asegurarse de que funciona, pero es probable que lo hace - Tengo ncurses instalados en / usr / GNU (porque / usr / local / se montan automáticamente y contiene las antigüedades) y no recuerdo haber tenido que utilizar nada especial para conseguir que funcione.


una doble comprobación ...

El script de configuración sólo incluye <curses.h>. Tuve que usar:

export CPPFLAGS="-I/usr/gnu/include -I/usr/gnu/include/ncurses"
export LDFLAGS="-L/usr/gnu/lib"
./configure

Para obtener el pitón (2.5) configurar para aceptar maldiciones. Se podría reemplazar 'gnu' con 'local' para su configuración.

Otros consejos

Sé que esto es una pregunta muy antigua, pero el problema todavía se me ocurrió al compilar Python 3.6.0 de la fuente, así que supongo que sigue siendo relevante.

Las versiones recientes de ncurses vienen en varios sabores:, soporte de caracteres de ancho normal, roscados. Con el fin de permitir a los programadores a mantener y utilizar diferentes sabores, además de nombrar las bibliotecas de manera diferente (ncursesw.so, ncursest.so, etc), los ncurses configurar script configura el makefile para poner los archivos de cabecera en los subdirectorios de forma predeterminada. Esto también permite tener diferentes implementaciones maldiciones junto con ncurses, tal como se especifica en el página del manual .

Algunos programas, sin embargo, todavía suponen que curses.h, a lo largo de todas las otras cabeceras ncurses, se colocan en el nivel superior incluyen rutas de búsqueda, y no se verá en los subdirectorios. En muchas distribuciones de Linux por lo general hay algún tipo de solución para el problema de los paquetes ncurses developement, pero si está compilando ncurses de la fuente, hay dos enfoques posibles para resolver el problema:

  1. Uso CPPFLAGS o equivalente, como la respuesta aceptada sugiere. Funciona, pero hay que establecer las banderas de compilación adecuada en todo momento.
  2. Configuración de ncurses con --enable-overwrite. Esto instalará los archivos de cabecera ncurses en el nivel superior incluyen directorio, de acuerdo a su --prefix.

Si no va a instalar una biblioteca de maldiciones alternativa es que es completamente seguro para poner las cabeceras ncurses en el nivel superior incluye el camino, y es el enfoque seguido por Gentoo .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top