Chcę zainstalować Lxml, aby móc zainstalować Scrapy.
Kiedy zaktualizowałem dzisiaj komputer Mac, nie pozwoliło mi to ponownie zainstalować pliku LXML, pojawia się następujący błąd:
In file included from src/lxml/lxml.etree.c:314:
/private/tmp/pip_build_root/lxml/src/lxml/includes/etree_defs.h:9:10: fatal error: 'libxml/xmlversion.h' file not found
#include "libxml/xmlversion.h"
^
1 error generated.
error: command 'cc' failed with exit status 1
Próbowałem użyć brew do zainstalowania libxml2 i libxslt, oba były w porządku, ale nadal nie mogę zainstalować lxml.
Podczas ostatniej instalacji musiałem włączyć narzędzia programistyczne na Xcode, ale ponieważ został zaktualizowany do Xcode 5, nie daje mi już takiej opcji.
Czy ktoś wie, co muszę zrobić?
pip3.4 install lxml
lubSTATIC_DEPS=true pip3.4 install lxml
poleceń, jeśli celujesz w konkretną instalację dla Python3 (dostosuj się do twojej wersji, ukończenie bash TAB jest twoim przyjacielem); tak, aby zainstalować dla określonej wersji programu docelowego, który korzysta z tej / tych bibliotek. W przeciwnym razie łatwo wydać 30 mln na instalację biblioteki lib dla niewłaściwego tłumacza ;-)Odpowiedzi:
Powinieneś zainstalować lub zaktualizować narzędzie wiersza poleceń dla xcode. Wypróbuj to w terminalu:
źródło
Rozwiązałem ten problem na Yosemite, instalując i łącząc
libxml2
orazlibxslt
poprzez brew:Jeśli problem został rozwiązany za pomocą tej metody, ale pojawia się ponownie później, może być konieczne uruchomienie go przed czterema powyższymi wierszami:
Jeśli masz błędy uprawnień w Homebrew, zwłaszcza na El Capitan, jest to pomocny dokument . Zasadniczo, niezależnie od wersji OS X, spróbuj uruchomić:
źródło
xcode-select --install
jest nieco mylące. Odkryłem, że po aktualizacji z Mavericks do Yosemite musiałemxcode-select --install
ponownie uruchomić, aby zaktualizować do narzędzi wiersza poleceń Yosemite. To (częściowo) rozwiązało problemy, na które się natknąłem, a w każdym razie zbędne byłoby bieganie nadmiarowe.Możesz rozwiązać problem, uruchamiając to w wierszu poleceń:
To na pewno mi pomogło. Objaśnienia do dokumentów
źródło
Wypróbowałem większość powyższych rozwiązań, ale żadne z nich nie działało dla mnie. Używam Yosemite 10.10, jedynym rozwiązaniem, które mi pomogło, było wpisanie tego w terminalu:
EDYCJA: Jeśli używasz virtualenv, sudo na początku nie jest potrzebne.
źródło
virtualenv
sudo nie jest potrzebne.OSError: [Errno 1] Operation not permitted: '/usr/bin/build'
pomimo uruchomienia polecenia sudo. Jakieś pomysły?Od dłuższego czasu mnie to niepokoi. Nie znam wystarczająco elementów wewnętrznych na temat distutils w Pythonie itp., Ale ścieżka dołączania tutaj jest nieprawidłowa. Zrobiłem następujący brzydki hack, aby mnie zatrzymać, dopóki ludzie lxml w Pythonie nie będą w stanie naprawić.
źródło
Instalowanie globalnie ... OS X 10.9.2
źródło
instrukcje instalacji na http://lxml.de/installation.html wyjaśniają:
źródło
Żadne z powyższych nie działało dla mnie w wersji 10.9.2, ponieważ kompilacja nie działa z następującym błędem:
Co faktycznie prowadzi do najczystszego rozwiązania (zobacz więcej szczegółów w [1]):
lub następujące, jeśli instalujesz globalnie
[1] błąd clang: nieznany argument: „-mno-fused-madd” (błąd instalacji pakietu python)
źródło
/etc/sudoers
wsudo visudo
celu zachowania zmiennych środowiskowych.źródło
sudo
instalacji pip, a inni nie. (Miałem problemy z uprawnieniami podczas bezpośredniego instalowania pip i musiałem sudo.) Mogę tylko założyć, że w odległej przeszłości zainstalowałem coś związanego z pythonem jako root, co spowodowało, że niektóre (systemowe) foldery były jako root, a nie jak ja.sudo
jednak.Rozwiązałem ten problem
Yosemite
, uruchamiając następujące polecenia:źródło
xcode-select install
. Pobrałem najnowsze pakiety libxml2 i libxlst (wymagane dla lxml), ale przed ich zainstalowaniem pomyślałem, że sprawdzę, czy Yosemite już gdzieś ma te pliki. Utworzyłem wirtualną env (używając virtualenvwrapper), a potem zrobiłem topip install lxml
i bez problemu zainstalowałem lxml. Przetestowałem lxml poprzez zeskrobanie strony głównej Google, i to działało dobrze.W przypadku homebrew libxml2 jest ukryty, aby nie zakłócał działania systemu libxml2, więc pip musi być trochę pomógł, aby go znaleźć.
Z uderzeniem:
Z rybami:
źródło
OSX 10.9.2
źródło
Próbowałem wszystkich odpowiedzi na tej stronie, żadna z nich nie działała dla mnie. Korzystam z systemu OS X w wersji 10.9.2
Ale to zdecydowanie działa .... jak urok:
ARCHFLAGS = -Wno-error = unused-command-line-argument-hard-error-in-future pip install lxml
źródło
export ARCHFLAGS="-Wno-error=unused-command-line-argument-hard-error-in-future"
lub możesz dodać typy architektury wyraźnie takie:export ARCHFLAGS="-arch x86_64 -arch i386 -Wno-error=unused-command-line-argument-hard-error-in-future"
Niestety
xcode-select --install
nie zadziałało, ponieważ miałem już najnowszą wersję.To bardzo dziwne, ale rozwiązałem problem, otwierając XCode i akceptując Warunki. Ponowne uruchomienie
pip install lxml
nie zwróciło żadnych błędów po.źródło
Po pomyślnej instalacji z pip (lxml 3.6.4) otrzymałem błąd podczas importowania modułu lxml.etree.
Nieustannie szukałem tego, aby zainstalować to jako narzędzie do złomowania i wypróbowałem wszystkie opcje, ale w końcu to zadziałało dla mnie (Mac OSX 10.11 Python 2.7):
Starsza wersja lxml wydaje się działać z modułem etree.
Pip często może zignorować określoną wersję pakietu, na przykład gdy masz nową wersję w pamięci podręcznej pip, a więc
easy_install
.'-2.7'
Opcja dla wersji Pythona, pominąć tego, jeśli są instalowane dla Pythona 3.xźródło
W moim przypadku muszę zamknąć Kaspersky Antivirus przed zainstalowaniem lxml przez:
źródło
Używam OSX 10.9.2 i pojawia się ten sam błąd.
Instalacja narzędzi wiersza polecenia XCode nie pomaga w tej konkretnej wersji OSX.
Myślę, że lepszym rozwiązaniem tego problemu jest instalacja za pomocą następującego polecenia:
Jest to podobne do poprawki jdkoftinoff, ale nie zmienia systemu na stałe.
źródło
Znalazłem to samo pytanie i po wielu dniach pracy rozwiązałem ten problem na moim systemie OS X 10.9.4 z Pythonem 3.4.1.
Oto moje rozwiązanie
Zgodnie z instalacją lxml z lxml.de,
Jeśli nie masz MacPort, zainstaluj go z MacPort.org . To całkiem proste. Możesz także potrzebować kompilatora, aby zainstalować narzędzia kompilujące XCode, użyj
xcode-select --install
Najpierw zaktualizowałem mój port do najnowszej wersji przez
sudo port selfupdate
,Następnie piszę
sudo port install libxml2
i kilka minut później powinieneś zobaczyć instalację libxml2 zakończoną powodzeniem. Prawdopodobnie konieczne może być takżelibxslt
zainstalowanie lxml. Aby zainstalować libxslt, przeznaczenie:sudo port install libxslt
.Teraz po prostu wpisz
pip install lxml
, powinno działać dobrze.źródło
przed kompilacją dodaj ścieżkę do pliku xmlversion.h w swoim środowisku.
Ale upewnij się, że podana przeze mnie ścieżka zawiera plik xmlversion.h. Następnie,
źródło
pip
nie działało dla mnie. Poszedłem na https://pypi.python.org/pypi/lxml/2.3 i pobrałem plik .egg macosx:https://pypi.python.org/packages/2.7/l/lxml/lxml-2.3-py2.7-macosx-10.6-intel.egg#md5=52322e4698d68800c6b6aedb0dbe5f34
Następnie użyłem wiersza polecenia,
easy_install
aby zainstalować.egg
plik.źródło
Ten post prowadzi do rozwiązania, które działało dla mnie: Python3, lxml i „Nie znaleziono symbolu: _lzma_auto_decoder” w systemie Mac OS X 10.9
hth
źródło
Po wielu łzach włosów i zgrzytaniu zębami odinstalowałem xcode za pomocą pip i uruchomiłem:
easy_install lxml
I wszystko było dobrze.
źródło
Próbować:
Lub:
To działa!
źródło