Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Installing lxml, libxml2, libxslt on Windows 8.1

After additional exploration, I found a solution to installing lxml with pip and wheel. Additional comments on approach welcomed.

I'm finding the existing Python documentation for Linux distributions excellent. For Windows... not so much. I've configured my Linux system fine but I need some help getting a Windows 8.1 tablet ready as well.

My project requires the lxml module for Python 3.4. I've found many tutorials on how to install lxml but each has failed.

https://docs.python.org/3/installing/ I've downloaded the "get-pip.py" and successfully ran it from the Windows cmd line with the result:

Requirement already up-to-date: pip in c:\python34\lib\site-packages 

So I don't think that I have a "pip" problem. From there I've run the following from the Windows cmd line:

python -m pip install lxml 

A long list of commands scroll through but there are a couple of lines that appear to be errors that I'm unable to resolve.

  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 ** 

and

Failed building wheel for lxml 

And the last part, all in red

Command "C:\Python34\python.exe -c "import setuptools, tokenize;__file__='C:\\Users\\Owner\\AppData\\Local\\Temp\\pip-build-ya3n6wkd\\lxml\\setup.py';exec(compi le(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record C:\Users\Owner\AppData\Local\Temp\pip-ytybzl9l-r ecord\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:\Users\Owner\AppData\Local\Temp\pip-build-ya3n6wkd\lxml 

Any assistance in understanding how this should work, or what I'm doing wrong would be greatly appreciated.

like image 319
SigmaXD Avatar asked May 27 '15 20:05

SigmaXD


People also ask

Are lxml libxml2 and libxslt installed?

Unless you are using a static binary distribution (e.g. from a Windows binary installer), lxml requires libxml2 and libxslt to be installed, in particular: libxml2 version 2.9. 2 or later.

How do I know if lxml is installed?

To check which version of lxml is installed, use pip show lxml or pip3 show lxml in your CMD/Powershell (Windows), or terminal (macOS/Linux/Ubuntu) to obtain the output major.


1 Answers

I was able to fix the installation with the following steps. I hope others find this helpful.

My installation of "pip" was working fine before the problem. I went to the Windows command line and made sure that "wheel" was installed.

C:\Python34>python -m pip install wheel Requirement already satisfied (use --upgrade to upgrade): wheel in c:\python34\lib\site-packages 

After that I downloaded the lxml file from http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml and placed it in my python directory "C:\Python34"

In that directory I ran the following:

C:\Python34>python -m pip install lxml-3.4.4-cp34-none-win32.whl 

The results were:

Processing c:\python34\lxml-3.4.4-cp34-none-win32.whl Installing collected packages: lxml Successfully installed lxml-3.4.4 

I opened PyCharm and lxml module was available. I was able to execute the code without problem.

What I learned (though this may be corrected by others more knowledgeable)

  1. Need to install the desired module (as a "*.whl" file) using pip and wheel.
  2. Using Dropbox to share a code folder with different PyCharm installations causes confusion for the "workspace.xml" file. The two computers kept writing over each other, messing up the installation paths.

Hope this helps.

like image 149
SigmaXD Avatar answered Sep 18 '22 07:09

SigmaXD