Was mache ich falsch bei der Installation von lxml unter Mac OS X 10.8.1?

8

Ich erstelle Lxml unter Mac OS X 10.8.1 und Python 2.7.2 und habe Probleme. (Ich habe das Github-Repository geklont und die Anweisungen für Mac OS X hier ausgeführt: Ссылка )

Es scheint, dass etwas beim Erstellen von libxml2 hängt; Das folgende ist das Ende der Terminalausgabe:

%Vor%

[gekappt]

%Vor%

[gekappt]

%Vor%

[gekappt]

%Vor%

Ich bin weit außerhalb meiner Tiefe, um herauszufinden, was hier falsch ist. Kann mir jemand zeigen, was ich tun muss, um das Problem zu beheben?

    
Jed Christiansen 18.09.2012, 20:41
quelle

1 Antwort

17

Dies ist ein Fehler in libxml2 2.9.

Der Fehler, den Sie bekommen, ist in dieser Zeile:

%Vor%

Das ist illegaler Code, der zufällig unter Linux funktioniert. PTHREAD_ONCE_INIT kann nur für die Initialisierung und nicht für die Zuweisung verwendet werden, und dafür gibt es einen besonderen Grund: So können Plattformen PTHREAD_ONCE_INIT als Aggregat-Initialisierer definieren. Welches OS X tut das? Ab 10.8.1% /usr/include/pthread.h :

%Vor%

Es sieht so aus, als ob dies vor ein paar Tagen der Mailingliste libxml2 gemeldet wurde (https://mail.gnome.org/archives/xml/2012-September/msg00036.html), die zwei Tage später in Bugzilla abgelegt wurde ( https://bugzilla.gnome.org/show_bug.cgi?id=684024), und am nächsten Tag behoben (http://git.gnome.org/browse/libxml2/commit/?id=3f6cfbd1d38d0634a2ddcb9a0a13e1b5a2195a5e), also vermutlich 2.9 .1 wird dieses Problem nicht haben.

Also, hier sind Ihre Möglichkeiten:

Natürlich könnte man warten bis 2.9.1 herauskommt.

Alternativ dazu ist die Version von libxml2, die mit Mountain Lion, 2.7.8 geliefert wird, nicht "schrecklich veraltet", obwohl die Build-Seite dies sagt. Sie ist neuer als die Version 2.7.3, die er vorschlägt. Sie können also einfach --static-deps überspringen und die integrierte Version 2.7.8 verwenden.

Wenn Sie etwas neueres als 2.7.8 möchten, aber nicht so neu wie das (nicht funktionierende) 2.9.0, zeigt die Build-Seite, wie Sie es explizit angeben, und Ссылка sollte den Versionsverlauf irgendwo haben, damit Sie die gewünschte Version auswählen können. Zum Beispiel:

%Vor%

Oder Sie könnten den Patch manuell von Ссылка installieren und diesen manuell erstellen oder ziehen die Spitze des Baumes anstelle von Version 2.9.0, bilde das und erzähle dann lxml, um diesen Build zu verwenden.

Wenn Sie in Zukunft nicht mit Debug-Builds arbeiten wollen, würde ich vorschlagen, pip einfach zu verwenden, um Python-Pakete zu installieren, und Homebrew, um fehlende Abhängigkeiten zu installieren. Sie erhalten nicht immer den idealen Build der neuesten Version von allem, aber es wird viel einfacher und in der Regel gut genug.

    
abarnert 18.09.2012, 23:45
quelle

Tags und Links