简体   繁体   中英

Fail to install lxml in MacOS 10.8.4

I am having trouble installing lxml to my Mac OS. I am having the following error when building it. This is the error I have when using pip install lxml

/private/var/folders/9s/s5hl5w4x7zjdjkdljw9cnsrm0000gn/T/pip-build-khuevu/lxml/src/lxml/includes/etree_defs.h:9:10: fatal error: 'libxml/xmlversion.h' file not found

I have installed libxml2 with brew:

brew install libxml2
brew link libxml2 --force

I'm new to Mac. In Ubuntu, it would mean libxml2-dev package must be installed.

Updated: here is the pip.log:

"~/.pip/pip.log" 124L, 8293C requirement_set.install(install_options, global_options, root=options.root_path) File "/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/req.py", line 1185, in install requirement.install(install_options, global_options, *args, **kwargs) File "/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/req.py", line 592, in install cwd=self.source_dir, filter_stdout=self._filter_install, show_stdout=False) File "/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/util.py", line 662, in call_subprocess % (command_desc, proc.returncode, cwd)) InstallationError: Command /usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python -c "import setuptools; file ='/private/var/folders/9s/s5hl5w4x7zjdjkdljw 9cnsrm0000gn/T/pip-build-khuevu/lxml/setup.py';exec(compile(open( file ).read().replace('\\r\\n', '\\n'), file , 'exec'))" install --record /var/folders/9s/s5hl5w4x7zjdjkdljw9cnsrm0000gn/T/pip-nsV0iT-record/install-record.txt --single-version-externally-managed failed with error code 1 in /private/var/folders/9s/s5hl5w4x7zjdjkdljw9cnsrm0000gn/T/pip-build-khuevu/lxml

Any idea ? Thanks a lot

Turn out xmlversion.h is not included in compilation path even though it is in PATH. Modify the C_INCLUDE_PATH env fix the error for me:

C_INCLUDE_PATH=/usr/local/Cellar/libxml2/2.9.1/include/libxml2:$C_INCLUDE_PATH

如果您在安装Xcode的情况下运行Mavericks,您还可以使用:

export C_INCLUDE_PATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/include/libxml2:$C_INCLUDE_PATH

None of the other answers (exporting C_INCLUDE_PATH) worked for me. However, setting the CFLAGS environment variable to the built-in OS X 10.10 libxml2 root worked like a charm.

export CFLAGS=-I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/libxml2

I have Python and libxml installed via brew, this worked for me after trying everything above:

sudo mkdir /usr/include # If /usr/include is missing
sudo ln -s /usr/local/Cellar/libxml2/2.9.2/include/libxml2 /usr/include/libxml2

Note: You'll need to check your own paths for latest versions.

Since the headers are available elsewhere, and being looked for in a particular directory (spotted in the command calling clang to compile) - and for some reason the alternate place is not being picked up, I made a softlink to the right place.

brew install libxml2
brew link libxml2 --force
export C_INCLUDE_PATH=/usr/local/Cellar/libxml2/2.9.2/include/libxml2:$C_INCLUDE_PATH

there is something with the permission to mkdir in /usr/ when the system is Mac EI captain. Maybe we can not modify this directory?

See What is the “rootless” feature in El Capitan, really? on AskDifferent

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM