Frage

Ich versuche, Python 2.6.2 auf meinem Linux-System von der Quelle zu bauen. Es hat ncurses auf / usr / local installiert / und curses.h auf / usr / local / include / ncurses. So ist curses.h nicht auf dem Include-Pfad gefunden, und diese Pakete nicht in dem Python zu bauen.

Was ist die richtige Lösung für dieses? Soll Python enthalten ? Soll / usr / local / include / ncurses im Pfad enthalten sein? Sollte es in dem ncurses-Verzeichnis ein Link von den Dateien zu / usr / local / include?

Oder gibt es eine einfachere Lösung?

War es hilfreich?

Lösung

Mit vielen Open-Source-Pakete, können Sie festlegen:

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

oder auch:

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

, bevor Sie den Configure-Skript ausgeführt wird. Ich habe in letzter Zeit nicht genug kompiliert Python um sicher zu sein, das funktioniert, aber es wahrscheinlich tut - ich ncurses unter / usr / gnu installiert haben (da / usr / local / wird automatisch geladen und enthält Antiquitäten) und ich erinnere mich nicht zu haben, verwenden etwas besonderes, um es zu arbeiten.


Doppel geprüft ...

Der configure-Skript enthält nur <curses.h>. Ich hatte zu verwenden:

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

Um den Python (2.5) konfigurieren bekommen Flüche zu akzeptieren. Sie würden ‚gnu‘ mit ‚local‘ für Ihre Konfiguration ersetzen.

Andere Tipps

Ich weiß, dass dies eine sehr alte Frage, aber das Problem immer noch fiel mir ein, wenn Python 3.6.0 von der Quelle kompilieren, damit ich es ist immer noch relevant erraten.

Neuere Versionen von ncurses kommen in verschiedenen Geschmacksrichtungen: normal, breite Zeichenunterstützung, eingefädelt. Um Programmierer zu ermöglichen, verschiedene Aromen zu halten und zu verwenden, außer die Bibliotheken Benennung unterschiedlich (ncursesw.so, ncursest.so, etc.) konfiguriert die ncurses-Skript die Make-Datei einrichtet die Header-Dateien in einem Unterverzeichnis standardmäßig zu setzen. Auf diese Weise können auch verschiedene Flüche Implementierungen neben ncurses haben, wie in der Manpage rel="nofollow.

Einige Programme gehen jedoch davon aus, dass nach wie vor curses.h, an allen anderen ncurses-Header werden in der obersten Ebene platziert sind Suchpfade, und wird sich nicht in Unterverzeichnissen. In vielen Linux-Distributionen ist es in der Regel eine Art von Abhilfe für das Problem in ncurses Entwicklung von Paketen, aber wenn man ncurses von der Quelle kompiliert, gibt es zwei mögliche Ansätze, das Problem zu lösen:

  1. Verwenden CPPFLAGS oder gleichwertig, wie die akzeptierte Antwort vermuten läßt. Es funktioniert, aber Sie haben die entsprechende Zusammenstellung Flags jedes Mal setzen.
  2. Konfigurieren von ncurses mit --enable-overwrite. Dies installiert die ncurses Header-Dateien in der obersten Ebene enthalten Verzeichnis, nach Ihrem --prefix.

Wenn Sie nicht planen, eine alternative Fluch Bibliothek zu installieren, dann ist es ganz sicher die ncurses-Header in der obersten Ebene zu setzen Pfad enthalten, und es ist der Ansatz, gefolgt von Gentoo .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top