Mendapatkan “Tidak dapat menemukan fungsi xmlCheckVersion di perpustakaan libxml2. Apakah libxml2 sudah terpasang? ” saat memasang lxml melalui pip

102

Saya mendapatkan pesan kesalahan Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed?saat mencoba menginstal lxml melalui pip.

  c:\users\f\appdata\local\temp\xmlXPathInitqjzysz.c(1) : fatal error C1083: Cannot open include file: 'libxml/xpath.h': No such file or directory
  *********************************************************************************
  Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed?
  *********************************************************************************
  error: command 'C:\\Users\\f\\AppData\\Local\\Programs\\Common\\Microsoft\\Visual C++ for Python\\9.0\\VC\\Bin\\cl.exe' failed with exit status 2

Saya tidak menemukan paket dev libxml2 untuk diinstal melalui pip.

Menggunakan Python 2.7 dan Python 3.x pada x86 di virtualenv di bawah Windows 10.

SaeX
sumber

Jawaban:

157

Saya mengalami masalah ini dan menyadari bahwa meskipun saya menginstal libxml2, saya tidak memiliki perpustakaan pengembangan yang diperlukan yang diperlukan oleh paket python. Menginstalnya memecahkan masalah:

sudo apt-get install libxml2-dev libxslt1-dev
sudo pip install lxml
praktis
sumber
23
Harap baca konten OP. Dia melakukan ini di mesin Windows!
Metahuman
2
Solusi yang tepat untuk linux saat menggunakan pip
Goranek
3
Fedora 23: dnf install libxml2-devel dandnf install libxslt-devel
SergO
@Metahuman Menginstal paket yang sama dengan penginstal Cygwin memecahkan masalah saya di Windows 10.
Tag
2
Centos 7 : sudo yum install libxml2-devel libxslt-devel(diperlukan untuk modul python-docx)
Marc Maxmeister
108

Instal lxml dari http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml untuk versi python Anda. Ini adalah WHL yang telah dikompilasi dengan modul / dependensi yang diperlukan.

Situs ini mencantumkan beberapa paket, misalnya menggunakan Win32 Python 3.9, gunakan lxml‑4.5.2‑cp39‑cp39‑win32.whl.

Unduh file, lalu instal dengan:

pip install C:\path\to\downloaded\file\lxml4.5.2cp39cp39win32.whl
SaeX
sumber
4
@ user151496 - yum install libxml2-devel libxslt-devel melakukan ini untuk saya. stackoverflow.com/questions/26884514/…
Trent
6
Jawaban terbaik untuk Windows sejauh ini.
Leonel Sanches da Silva
2
Anda juga dapat menginstal dengan perintah yang lebih umum ini: pip install --use-wheel --find-links = C: \ path \ to \ folder \ with \ wheel lxml
rleelr
1
Tautan itu menyelamatkan saya berkali-kali :-) karena ada banyak roda di sana.
m3nda
1
Sangat membantu. Hal kecil lain yang perlu saya lakukan: Gagal menginstal di env virtual saya (roda tidak didukung). Akhirnya saya menginstalnya di python biasa saya (c: \ program files x86 ...) dan menyalin python27\lib\site-packages\lxml*folder ke virtual env.
reformy
35

Coba gunakan:
easy_install lxml
Itu berhasil untuk saya, win10, python 2.7.

Zing Lee
sumber
5
itu melempar kesalahan yang sama saat menggunakan perintah instalasi mudah untuk lxml
Piyush
1
Dulu bekerja untuk saya, tetapi sekarang dengan versi lxml baru ini tidak lagi berfungsi.
SaeX
23

Di Mac OS X El Capitan saya harus menjalankan dua perintah ini untuk memperbaiki kesalahan ini:

xcode-select --install
pip install lxml

Yang akhirnya menginstal lxml-3.5.0

Saat Anda menjalankan perintah xcode-select, Anda mungkin harus menandatangani EULA (jadi siapkan X-Term untuk UI jika Anda melakukan ini pada mesin tanpa kepala).

Jason D
sumber
2
Yup, itu melakukan trik untuk saya di OS X El Capitan. Faktanya, jika Anda menggulir ke atas layar untuk melihat akar penyebab kesalahan, ada baris di sana yang mengatakan "Mungkin coba: xcode-select --install"
Devy
Ini memperbaikinya, dan ada baris yang menyarankan ini seperti yang dikomentari di atas!
jfive
1
Namun, apakah ada orang lain yang merasa mereka sudah berlari xcode-select --installsebelumnya? Apakah ada introspeksi tentang apa yang dilakukannya untuk pertama atau kedua kalinya? Sebagai catatan, meskipun saya tidak harus menginstal lxmlsecara global agar dapat berfungsi di lingkungan virtual, setidaknya ada itu.
lol
21

Jika ada orang lain yang memiliki masalah yang sama dengan ini

Centos, coba:

yum install python-lxml

Ubuntu

sudo apt-get install -y python-lxml

bekerja untuk saya.

J1MF0X
sumber
1

Saya mencoba menginstal lib yang tergantung lxmldan tidak ada yang berhasil. Saya melihat pesan ketika build dimulai: "Building without Cython", jadi setelah install cythonwith apt-get install cython, lxmlsudah diinstal.

gabrieloliveira
sumber
1

Tidak aneh bagi saya bahwa tidak ada solusi di atas yang muncul, tetapi saya melihat bagaimana instalasi igd menghapus versi baru dan menginstal yang lama, untuk solusinya saya mengunduh arsip ini: https://pypi.org/project/ igd / # file

dan mengubah versi yang disarankan dari versi baru: 'lxml == 4.3.0' di setup.py Berhasil!

Ivan Minakov
sumber
0

Saya mendapat kesalahan yang sama untuk python 32 bit. Setelah menginstal 64bit, masalah telah diperbaiki.

Nishara MJ
sumber