Come installare lxml su Windows

Sto cercando di installare lmxl sul mio Windows 8.1 portatile con Python 3.4 e fallendo miseramente.

Prima di tutto, ho provato la soluzione semplice ed evidente: pip install lxml. Tuttavia, questo non funziona. Ecco cosa ha detto:

Downloading/unpacking lxml
  Running setup.py (path:C:\Users\CARTE_~1\AppData\Local\Temp\pip_build_carte_000\lxml\setup.py) egg_info for package lxml
    Building lxml version 3.4.2.
    Building without Cython.
    ERROR: b"'xslt-config' is not recognized as an internal or external command,\r\noperable program or batch file.\r\n"
    ** make sure the development packages of libxml2 and libxslt are installed **

    Using build configuration of libxslt
    C:\Python34\lib\distutils\dist.py:260: UserWarning: Unknown distribution option: 'bugtrack_url'
      warnings.warn(msg)

    warning: no previously-included files found matching '*.py'
Installing collected packages: lxml
  Running setup.py install for lxml
    Building lxml version 3.4.2.
    Building without Cython.
    ERROR: b"'xslt-config' is not recognized as an internal or external command,\r\noperable program or batch file.\r\n"
    ** make sure the development packages of libxml2 and libxslt are installed **

    Using build configuration of libxslt
    building 'lxml.etree' extension
    C:\Python34\lib\distutils\dist.py:260: UserWarning: Unknown distribution option: 'bugtrack_url'
      warnings.warn(msg)
    error: Unable to find vcvarsall.bat
    Complete output from command C:\Python34\python.exe -c "import setuptools, tokenize;__file__='C:\\Users\\CARTE_~1\\AppData\\Local\\Temp\\pip_build_carte_000\\lxml\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record C:\Users\CARTE_~1\AppData\Local\Temp\pip-l8vvrv9g-record\install-record.txt --single-version-externally-managed --compile:
    Building lxml version 3.4.2.

Building without Cython.

ERROR: b"'xslt-config' is not recognized as an internal or external command,\r\noperable program or batch file.\r\n"

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



Using build configuration of libxslt

running install

running build

running build_py

creating build

creating build\lib.win32-3.4

creating build\lib.win32-3.4\lxml

copying src\lxml\builder.py -> build\lib.win32-3.4\lxml

copying src\lxml\cssselect.py -> build\lib.win32-3.4\lxml

copying src\lxml\doctestcompare.py -> build\lib.win32-3.4\lxml

copying src\lxml\ElementInclude.py -> build\lib.win32-3.4\lxml

copying src\lxml\pyclasslookup.py -> build\lib.win32-3.4\lxml

copying src\lxml\sax.py -> build\lib.win32-3.4\lxml

copying src\lxml\usedoctest.py -> build\lib.win32-3.4\lxml

copying src\lxml\_elementpath.py -> build\lib.win32-3.4\lxml

copying src\lxml\__init__.py -> build\lib.win32-3.4\lxml

creating build\lib.win32-3.4\lxml\includes

copying src\lxml\includes\__init__.py -> build\lib.win32-3.4\lxml\includes

creating build\lib.win32-3.4\lxml\html

copying src\lxml\html\builder.py -> build\lib.win32-3.4\lxml\html

copying src\lxml\html\clean.py -> build\lib.win32-3.4\lxml\html

copying src\lxml\html\defs.py -> build\lib.win32-3.4\lxml\html

copying src\lxml\html\diff.py -> build\lib.win32-3.4\lxml\html

copying src\lxml\html\ElementSoup.py -> build\lib.win32-3.4\lxml\html

copying src\lxml\html\formfill.py -> build\lib.win32-3.4\lxml\html

copying src\lxml\html\html5parser.py -> build\lib.win32-3.4\lxml\html

copying src\lxml\html\soupparser.py -> build\lib.win32-3.4\lxml\html

copying src\lxml\html\usedoctest.py -> build\lib.win32-3.4\lxml\html

copying src\lxml\html\_diffcommand.py -> build\lib.win32-3.4\lxml\html

copying src\lxml\html\_html5builder.py -> build\lib.win32-3.4\lxml\html

copying src\lxml\html\_setmixin.py -> build\lib.win32-3.4\lxml\html

copying src\lxml\html\__init__.py -> build\lib.win32-3.4\lxml\html

creating build\lib.win32-3.4\lxml\isoschematron

copying src\lxml\isoschematron\__init__.py -> build\lib.win32-3.4\lxml\isoschematron

copying src\lxml\lxml.etree.h -> build\lib.win32-3.4\lxml

copying src\lxml\lxml.etree_api.h -> build\lib.win32-3.4\lxml

copying src\lxml\includes\c14n.pxd -> build\lib.win32-3.4\lxml\includes

copying src\lxml\includes\config.pxd -> build\lib.win32-3.4\lxml\includes

copying src\lxml\includes\dtdvalid.pxd -> build\lib.win32-3.4\lxml\includes

copying src\lxml\includes\etreepublic.pxd -> build\lib.win32-3.4\lxml\includes

copying src\lxml\includes\htmlparser.pxd -> build\lib.win32-3.4\lxml\includes

copying src\lxml\includes\relaxng.pxd -> build\lib.win32-3.4\lxml\includes

copying src\lxml\includes\schematron.pxd -> build\lib.win32-3.4\lxml\includes

copying src\lxml\includes\tree.pxd -> build\lib.win32-3.4\lxml\includes

copying src\lxml\includes\uri.pxd -> build\lib.win32-3.4\lxml\includes

copying src\lxml\includes\xinclude.pxd -> build\lib.win32-3.4\lxml\includes

copying src\lxml\includes\xmlerror.pxd -> build\lib.win32-3.4\lxml\includes

copying src\lxml\includes\xmlparser.pxd -> build\lib.win32-3.4\lxml\includes

copying src\lxml\includes\xmlschema.pxd -> build\lib.win32-3.4\lxml\includes

copying src\lxml\includes\xpath.pxd -> build\lib.win32-3.4\lxml\includes

copying src\lxml\includes\xslt.pxd -> build\lib.win32-3.4\lxml\includes

copying src\lxml\includes\etree_defs.h -> build\lib.win32-3.4\lxml\includes

copying src\lxml\includes\lxml-version.h -> build\lib.win32-3.4\lxml\includes

creating build\lib.win32-3.4\lxml\isoschematron\resources

creating build\lib.win32-3.4\lxml\isoschematron\resources\rng

copying src\lxml\isoschematron\resources\rng\iso-schematron.rng -> build\lib.win32-3.4\lxml\isoschematron\resources\rng

creating build\lib.win32-3.4\lxml\isoschematron\resources\xsl

copying src\lxml\isoschematron\resources\xsl\RNG2Schtrn.xsl -> build\lib.win32-3.4\lxml\isoschematron\resources\xsl

copying src\lxml\isoschematron\resources\xsl\XSD2Schtrn.xsl -> build\lib.win32-3.4\lxml\isoschematron\resources\xsl

creating build\lib.win32-3.4\lxml\isoschematron\resources\xsl\iso-schematron-xslt1

copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_abstract_expand.xsl -> build\lib.win32-3.4\lxml\isoschematron\resources\xsl\iso-schematron-xslt1

copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_dsdl_include.xsl -> build\lib.win32-3.4\lxml\isoschematron\resources\xsl\iso-schematron-xslt1

copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_schematron_message.xsl -> build\lib.win32-3.4\lxml\isoschematron\resources\xsl\iso-schematron-xslt1

copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_schematron_skeleton_for_xslt1.xsl -> build\lib.win32-3.4\lxml\isoschematron\resources\xsl\iso-schematron-xslt1

copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_svrl_for_xslt1.xsl -> build\lib.win32-3.4\lxml\isoschematron\resources\xsl\iso-schematron-xslt1

copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\readme.txt -> build\lib.win32-3.4\lxml\isoschematron\resources\xsl\iso-schematron-xslt1

running build_ext

building 'lxml.etree' extension

C:\Python34\lib\distutils\dist.py:260: UserWarning: Unknown distribution option: 'bugtrack_url'

  warnings.warn(msg)

error: Unable to find vcvarsall.bat

----------------------------------------
Cleaning up...
Command C:\Python34\python.exe -c "import setuptools, tokenize;__file__='C:\\Users\\CARTE_~1\\AppData\\Local\\Temp\\pip_build_carte_000\\lxml\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record C:\Users\CARTE_~1\AppData\Local\Temp\pip-l8vvrv9g-record\install-record.txt --single-version-externally-managed --compile failed with error code 1 in C:\Users\CARTE_~1\AppData\Local\Temp\pip_build_carte_000\lxml
Storing debug log for failure in C:\Users\carte_000\pip\pip.log

Allora ho guardato su questo grande e utile cosa chiamata Internet e un sacco di persone che hanno lo stesso errore di aver bisogno di libxml2 e libxlst. Si consiglia un tipo che si chiama Christoph Gohlke pagina dove si fornisce una sorta di binario thingy per un gruppo di pacchetti. Lo si può trovare qui (quicklink per il lxml parte).

Così, dopo che ho rinunciato a cercare di trovare libxml2 e libxslt per il pip, ho deciso di andare lì, e trovato assoluta ton di download. So che ho bisogno di una a 64 bit, ma non ho idea di che “cp” ho bisogno.

Così una risposta mi dà una soluzione sul pip metodo o il Gohlke indice metodo sarebbe grande.

  • Abbastanza sicuro cp significa C-Python in questo contesto, e devono corrispondere ai valori dopo che con la versione di python che si vogliono sostenere. Così cp33 sarebbe per Python 3.3 .
  • Hai bisogno di amd64 3.4
InformationsquelleAutor spelchekr | 2015-04-03



7 Replies
  1. 22

    O si può anche andare a Christoph del Gohlke Python pagina e quindi scaricare il diritto lxml file. (In genere dal momento che io uso python 3.4 e ho un windows, scaricare il lxml-3.4.4-cp34-nessuno-win32.whl)

    Passare alla cartella in cui si trova. Fare clic sullo sfondo (quindi nulla è selezionata), quindi leftshift + tasto destro del mouse, allo stesso tempo, e fare clic su apri finestra di comando. Quindi digitare
    C:/Python34/Scripts/pip installare il “NOME DEL FILE che AVETE APPENA SCARICATO.whl”

    In questo caso sarebbe C:/Python34/Scripts/pip installare “lxml-3.4.4-cp34-nessuno-win32.whl”

    Ora premete invio. Questo ha funzionato bene per me, e dopo aver digitato la citazione è anche possibile premere il tasto tab e deve riempire quello giusto per voi.

    • Grazie! Sul mio Win 7 64bit con python 3.4 ho usato: C:\Python34>pip install lxml-3.4.4-cp34-none-win_amd64.whl
    • Ha funzionato per me Vince 10 a 64 bit python 3.7.3. Ho usato C:\Users\Admin\Downloads>pip install lxml-4.3.3-cp37-cp37m-win_amd64.whl come il mio .whl file era presente in Download.
  2. 12

    Prima, in seguito ai commenti, ho scaricato il lxml-3.4.2-cp34-none-win_amd64.whl file e provato ad aprirlo con un pip install, ma mi ha appena detto che non era un valido ruota file sul mio sistema o qualcosa del genere.

    Allora, ho scaricato il win_32 file e ha funzionato! Forse è perché ho un processore Intel e AMD64 è, ovviamente, solo per i processori AMD.

    • Questo ha funzionato per me, quando nulla sarebbe. Grazie.
    • “In breve, oggi la tecnologia AMD64 è ora di riferimento per l’architettura a 64 bit e non è legato con la CPU AMD.” da qui
  3. 2

    Queste istruzioni sono per Windows7 o Windows8 con Python3.4.

    Tuttavia, dovrebbero lavorare per diverse versioni come versioni di python e le altre condizioni modificare/evolvere:

    1. Installare Python3.4:
      1. Scaricare l’ultima versione di Python3.4 dalla pagina di download QUI
        • Link diretto per Win32 programma di installazione MSI -> QUI
      2. Semplicemente eseguire il MSI per installare python. Verranno registrati dal registro di sistema, e appare in Aggiungi/Rimuovi Programmi.
      3. NOTA: le mie istruzioni che seguono presuppongono che si sceglie di installare python per il percorso predefinito di C:\python34\ quando richiesto durante l’Installazione di Python Guidata
    2. Aggiungere il C:\python33\ e C:\python34\scripts cartelle di sistema path aggiungendo queste directory per il PATH variabile di ambiente dal Pannello di Controllo > Sistema > collegamento Impostazioni di Sistema Avanzate (Advanced Tab) > Variabili Ambientali (Pulsante).
    3. Installare OpenSSL:
      1. Scaricare Win32 OpenSSL pagina da QUI per la versione di Windows e il PC architettura
      2. Scaricare Visual C++ 2008 distribuibili per la versione di Windows e il PC architettura
      3. Scaricare OpenSSL per la versione di Windows e architettura (la versione normale, non la luce uno)
      4. Aggiungere il c:\openssl-win32\bin (o simili) directory per il tuo PATH, allo stesso modo si è aggiunto C:\python34 e C:\python34\scripts sopra.
    4. Installare Setuptools (get-pip.py dovrebbe installare Setuptools per voi), ma, nel caso in cui…
      1. Scaricare ez_setup.py QUI e salvarlo in C:\python34\scripts
      2. Eseguire C:\python34\scripts> python ez_setup.py
    5. Installare PIP
      1. Scaricare get-pip.py da QUI e salvarlo in C:\python34\scripts
      2. Eseguire C:\python34\scripts> python get-pip.py
    6. Installare LXML
      1. Scaricare LXML 3.4.4 da QUI per la versione di Windows e il PC architettura
      2. Eseguire il file EXE
    • .exe file non sono più disponibili per lxml su pypi.org.
  4. 2

    Ho anche incontrare questo problema di recente. pip non può non funzionare .whl file. Invece di fissare questo, ho installato tramite .exe file. è possibile scaricarlo dal qui.Si prega di scegliere la giusta versione di python. Spero che questo ti può aiutare.

    • Il problema è che (un anno più tardi, è vero) PyPi ha solo la ruota file, no .exe più 🙁
  5. 1

    Come appare oggi, nel 2018, lxml può essere installato da PyPI:

    C:\Users\Administrator>"c:\Program Files\Python37\python.exe" -m pip install -U pip wheel setuptools
    Collecting pip
      Downloading https://files.pythonhosted.org/packages/c2/d7/90f34cb0d83a6c5631cf71dfe64cc1054598c843a92b400e55675cc2ac37/pip-18.1-py2.py3-none-any.whl (1.3MB)
        100% |████████████████████████████████| 1.3MB 3.3MB/s
    Collecting wheel
      Downloading https://files.pythonhosted.org/packages/5a/9b/6aebe9e2636d35d1a93772fa644c828303e1d5d124e8a88f156f42ac4b87/wheel-0.32.2-py2.py3-none-any.whl
    Collecting setuptools
      Downloading https://files.pythonhosted.org/packages/96/06/c8ee69628191285ddddffb277bd5abdf769166e7a14b867c2a172f0175b1/setuptools-40.4.3-py2.py3-none-any.whl (569kB)
        100% |████████████████████████████████| 573kB 2.9MB/s
    Installing collected packages: pip, wheel, setuptools
      Found existing installation: pip 10.0.1
        Uninstalling pip-10.0.1:
          Successfully uninstalled pip-10.0.1
      The script wheel.exe is installed in 'c:\Program Files\Python37\Scripts' which is not on PATH.
      Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
      Found existing installation: setuptools 39.0.1
        Uninstalling setuptools-39.0.1:
          Successfully uninstalled setuptools-39.0.1
    Successfully installed pip-18.1 setuptools-40.4.3 wheel-0.32.2
    
    C:\Users\Administrator>pip install lxml
    Collecting lxml
      Downloading https://files.pythonhosted.org/packages/d7/9d/1aa28aa9d293a816baec6c37328d6465b722b2ff3f4d1e93ed56e87813ee/lxml-4.2.5-cp37-cp37m-win_amd64.whl (3.6MB)
        100% |████████████████████████████████| 3.6MB 1.6MB/s
    Installing collected packages: lxml
    Successfully installed lxml-4.2.5
    
    C:\Users\Administrator>python
    Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:57:15) [MSC v.1915 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> from io import BytesIO
    >>> some_file_or_file_like_object = BytesIO(b"<root>data</root>")
    >>> from lxml import etree
    >>> tree = etree.parse(some_file_or_file_like_object)
    >>> etree.tostring(tree)
    b'<root>data</root>'
  6. 1

    Ho avuto questo problema con i requisiti di file elencati lxml==4.2.1. Tuttavia, sono stato in grado di risolvere il problema con l’aggiornamento di questa per lxml==4.2.5.

Lascia un commento