Ubuntu'ya lxml nasıl kurulur


442

Ubuntu 11 üzerinde easyxinstall ile lxml kurulumunda zorluk yaşıyorum.

Yazdığım zaman $ easy_install lxml:

Searching for lxml
Reading http://pypi.python.org/simple/lxml/
Reading http://codespeak.net/lxml
Best match: lxml 2.3
Downloading http://lxml.de/files/lxml-2.3.tgz
Processing lxml-2.3.tgz
Running lxml-2.3/setup.py -q bdist_egg --dist-dir /tmp/easy_install-7UdQOZ/lxml-2.3/egg-dist-tmp-GacQGy
Building lxml version 2.3.
Building without Cython.
ERROR: /bin/sh: xslt-config: not found

** make sure the development packages of libxml2 and libxslt are installed **

Using build configuration of libxslt 
In file included from src/lxml/lxml.etree.c:227:0:
src/lxml/etree_defs.h:9:31: fatal error: libxml/xmlversion.h: No such file or directory
compilation terminated.

Öyle görünüyor libxsltya libxml2da kurulu değil. Http://www.techsww.com/tutorials/libraries/libxslt/installation/instal_libxslt_on_ubuntu_linux.php ve http://www.techsww.com/tutorials/libraries/libxml/installation/instal_libxml_on_ubuntu_linux adresindeki talimatları izlemeyi denedim . başarı ile php .

Eğer denersem wget ftp://xmlsoft.org/libxml2/libxml2-sources-2.6.27.tar.gzalırım

<successful connection info>
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /libxml2 ... done.
==> SIZE libxml2-sources-2.6.27.tar.gz ... done.
==> PASV ... done.    ==> RETR libxml2-sources-2.6.27.tar.gz ... 
No such file `libxml2-sources-2.6.27.tar.gz'.

İlk önce denemek, ben alırsınız ./configure --prefix=/usr/local/libxslt --with-libxml-prefix=/usr/local/libxml2ve sonunda ile başarısız olur:

checking for libxml libraries >= 2.6.27... configure: error: Could not find libxml2 anywhere, check ftp://xmlsoft.org/.

Ben her iki sürümü de denedim 2.6.27ve 2.6.29bir libxml2fark olmaksızın.

Hiç taş sudo apt-get install libxml2-devbırakmadan, başarıyla yaptım , ama bu hiçbir şeyi değiştirmez.

Yanıtlar:


950

Ubuntu'da olduğunuz için, bu kaynak paketleri rahatsız etmeyin. Bu geliştirme paketlerini apt-get kullanarak kurmanız yeterlidir.

apt-get install libxml2-dev libxslt1-dev python-dev

Yine de lxml'in muhtemelen eski bir sürümünden memnunsanız, deneyebilirsiniz

apt-get install python-lxml

ve onunla yapılabilir. :)


51
bu cevap lxml kurulum talimatlarına eklenmelidir :) teşekkürler +1
Boaz

43
Koştuktan sonra apt-get install libxml2-dev libxslt-devsadece yapabilirsinizeasy_install lxml
Bob Jansen

11
en son ubuntu benzeri dağıtımlarda, libxslt-dev yerine libxslt1-dev'i kurmanız gerekiyor
Jose A. Martín

21
En azından Ubuntu 14.04'te paketi yüklemelisiniz zlib1g-dev.
Christian Berendt

3
Ubuntu'da 16.04 de zlib1g-devgereklidir. Bu olmadan hatayı aldım /usr/bin/ld: cannot find -lz.
Jabba

111

Ayrıca lxml derlenmeden önce lib32z1-dev'i kurmak zorunda kaldım (Ubuntu 13.04 x64).

sudo apt-get install lib32z1-dev

Veya tüm gerekli paketler birlikte:

sudo apt-get install libxml2-dev libxslt-dev python-dev lib32z1-dev

9
+1. Bu paket, bahsedilen tüm diğer paketleri kurduktan sonra bile gerekliydi.
Jayesh Bhoot

1
yeh ben de 13.04 üzerinde gerekli
mwjackson

3
Neden bir lib32 paketinin başlıklarına ihtiyacı var ? Belki de zlib1g-dev de işe yarar?
Pepijn

1
ubuntu üzerinde zlib1g-dev gerekli 13.04
Zelo

6
Ayrıca 14.04 64 bit üzerinde de gereklidir.
Kristinn Örn Sigurðsson

43

@Pepijn'in @Druska'nın cevabına yorum yaptığı gibi, ubuntu 13.04 x64'te lib32z1-dev kullanmaya gerek yoktur, zlib1g-dev yeterlidir:

sudo apt-get install libxml2-dev libxslt-dev python-dev zlib1g-dev

16

Ubuntu 14.04 kullanarak Vagrant içinde pip ile lxml yükledim ve aynı sorunu vardı. Yüklü tüm gereksinimleri olsa da, aynı hatayı tekrar tekrar aldım. Görünüşe göre, VM'm varsayılan olarak çok az bellek gerekiyordu. 1024 MB ile her şey yolunda gidiyor.

VagrantFile'ınıza ekleyin ve lxml düzgün bir şekilde derlemeli / yüklemelidir:

config.vm.provider "virtualbox" do |vb|
  vb.memory = 1024
end

İpucu için sixhobbit sayesinde (bkz: Ubuntu 12.04'e lxml yükleyemiyorum ).


Bu benim için çalıştı. Teşekkürler. Başkalarına yardımcı olması durumunda derlemenin 4 durumuyla başarısız olduğunu söyledi.
Kurtis

bu cevabın OP'nin sorusuyla ilgisi yok
Corey Goldberg

10

Ubuntu 14.04 için

sudo apt-get install python-lxml

benim için çalıştı.


7
Bu kötü bir haber. Bu sorudan 1000'den fazla temsil aldım, eğer görüntülemeyi durduracaklarını düzelttiyse ... 😊
Eric Wilson

9

Aşama 1

Bu komutu kullanarak en son python güncellemelerini yükleyin.

sudo apt-get install python-dev

Adım 2

İlk bağımlılık libxml2 sürüm 2.7.0 veya üstünü ekle

sudo apt-get install libxml2-dev

Aşama 3

İkinci bağımlılık libxslt sürüm 1.1.23 veya üzerini ekleyin

sudo apt-get install libxslt1-dev

4. Adım

Önce pip paketi yönetim aracını kurun . ve bu komutu çalıştırın.

pip install lxml

Herhangi bir şüpheniz varsa Tıklayın


8

AKX'in bahsettiği paketleri kurduktan sonra hala aynı problemim vardı. İle çözüldü

apt-get install python-dev

6

Ubuntu 12.04.3 LTS (Precise Pangolin) için yapmam gerekenler:

apt-get install libxml2-dev libxslt1-dev

(Libxslt1-dev'deki "1" e dikkat edin)

Sonra ben sadece pip / easy_install ile lxml yükledim.


2

Ubuntu 18.4 (Bionic Beaver) 'dan çok daha iyi yapısal bir forma sahip olduğu için apt-get yerine apt kullanılması tavsiye edilir.

sudo apt install libxml2-dev libxslt1-dev python-dev

lxmlYine de muhtemelen daha eski bir sürümden memnunsanız , deneyebilirsiniz

sudo apt install python-lxml

1


@Simplans'tan ( https://stackoverflow.com/a/37759871/417747 ) işaretçi ve ana sayfa sayesinde birçok cevap oldukça eski ...

Benim için ne işe yaradı (Ubuntu bionic):

sudo apt-get install python3-lxml  

(+ sudo apt-get install libxml2-dev libxslt1-devÖnceden yükledim, ancak gereksinimin hala bu olup olmadığından emin değilim)


1
Evet, eski bir soruya eski cevaplar. Yani sorduğumda Ubuntu 11'deydim!
Eric Wilson

Evet, burada daha fazla soru sorabileceğinizden şüpheliyim (ubuntu'ya taşındı vb.) ama yine de çok fazla web araması yapıyor. Ve şüphesiz kimse hala Ubuntu 11 kullanıyor :). Ve sonra eski linux sürümleri ve paketleri uyumsuz, umarım bir gün iyileşir.
NSGaga - çoğunlukla etkin değil

0

İlk önce Ubuntu python-lxmlpaketini ve bağımlılıklarını kurun :

sudo apt-get install python-lxml

Ardından pip, Python için lxml'in en son sürümüne yükseltmek için kullanın :

pip install lxml

kod sadece cevaplar kaşlarını çattı. Biraz açıklama ekle
Manos Nikolaidis

Bu yanıt doğru olsa da, lütfen bir açıklama ekleyin. Temel mantığın uygulanması sadece kodu vermekten daha önemlidir, çünkü OP ve diğer okuyucuların bu ve benzeri sorunları kendileri düzeltmelerine yardımcı olur.
CodeMouse92

Zaten birkaç iyi yanıtı olan bir soruya yeni bir şey eklenmediğinden aşağı oylama yapıldı.
Eric Wilson
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.