2013-04-30 20 views
9

Chcę użyć xpath w python. Ponieważ ta biblioteka ma ograniczone zastosowanie, musiałem użyć lxml po długiej sesji wyszukiwania w google. Miałem kilka problemów podczas instalacji i na końcu zainstalowałem lxml, ale kiedy używam Błąd przy użyciu etree w lxml

from lxml import etree 
to zwraca błąd jak poniżej. czy mógłbyś powiedzieć mi rozwiązanie tego problemu !!!

Traceback (most recent call last): 
File "<pyshell#0>", line 1, in <module> 
from lxml import etree 
ImportError: DLL load failed: %1 is not a valid Win32 application. 

Czy ktoś1 może mi powiedzieć, jaki byłby problem? Dzięki za pomoc !!

+0

Wygląda na to, że masz uszkodzoną bibliotekę lxml. Czy próbowałeś ponownie go zainstalować? –

+0

@BasicWolf Zrobiłem reinstalację lxml kilka razy .. Pobrałem plik .exe i go uruchomiłem. Ukończyłem instalację, ale nadal generuje błąd !! – Sangamesh

+2

@BasicWolf Czy to jest problem systemów 32-bitowych i 64-bitowych? ponieważ czytałem w jednej odpowiedzi, że ma pewne problemy ze zgodnością z komputerami 64-bitowymi ... Czy ten błąd nadal istnieje, czy są jakieś dzienniki zmian? dzięki – Sangamesh

Odpowiedz

1

Odkąd wspomniałeś, że musiałeś walczyć z LXML, aby go zainstalować, ciężko powiedzieć, gdzie w tym procesie ten błąd mógł pojawić się.

Czy instalujesz lxml do domyślnej instalacji Pythona lub gdzieś indziej? Jeśli instalujesz do domyślnej instalacji, jedną z opcji .exe z https://pypi.python.org/pypi/lxml/3.2.0 może być twój najlepszy zakład. Ja też musiałem walczyć z lxml w niektórych przypadkach, ale te opcje .exe to najprostszy sposób, jaki znalazłem.

Jeśli próbujesz zainstalować lxml na jakiejś innej instalacji w Pythonie, sugeruję użycie pliku .egg wraz z narzędziami konfiguracyjnymi. Niestety, najnowsze pliki .egg, które mogę znaleźć dla lxml, są w wersji 2.3, ale można je pobrać tutaj https://botbot.me/freenode/kivy/

1

Mam ten sam problem. Zasadniczo mój system operacyjny to 64-bitowy, a mój python jest również 64-bitowy. Ale narzędzia i pakiety serwisowe, które zainstalowałem, były 32-bitowe, z wyjątkiem Ixml, który był 64-bitowy. Tak więc zainstalowałem wersję 32-bitową Ixml z poniższego linku i działało dobrze dla mnie.

https://pypi.python.org/pypi/lxml/

wierzę, system szuka realizacji 32 bitowej Ixml ale znalazła 64 bit zamiast. Mam nadzieję, że rozwiąże to problem.

8

I rozwiązać ten pobierając wersję 64-bitową lxml tutaj:

https://pypi.python.org/pypi/lxml/3.4.1

lxml-3.4.1.win-amd64-py2.7.exe

To jedyny to działało, aby rozwiązać błąd win32. Przed tym możesz zniszczyć starą wersję lxml.

+0

To był mój problem na odwrót. Mam Pythona 32bit, ale zainstalowałem amx64 lxml. Tak więc po prostu heads up dla wszystkich: _ instalator binarny lxml systemu Windows nie sprawdza zgodności 32/64 bitness_. –

1

Miałem ten sam problem. Część Win32 była początkowo myląca, ponieważ używam 64-bitowego systemu. Rozwiązanie, być może dlatego, że w rzeczywistej wersji Pythona używane są 32-bitowe komponenty, było po prostu odinstalowanie starej wersji lxml i zainstalowanie wersji 32-bitowej, tutaj: https://pypi.python.org/pypi/lxml/3.4.1#downloads

6

Wiem, że jest późno, aby to powiedzieć ... ale może pomóc komuś kiedyś ..

używam następujący kod do rozwiązania identyczny problem tutaj

python -m pip uninstall lxml 
python -m pip install lxml==3.6.0 
0

wystarczy dodać to tylko w przypadku, gdy ktoś w podobnej sytuacji uzyskać korzyści.Chociaż mój Python & biblioteki wymagane do Scrapy były 32-bitową instalacją, wciąż znajdowałem się w tym wydaniu. Po uaktualnieniu mojego Pythona do kolejnej wersji, problem został rozwiązany automatycznie.

Powiązane problemy