2013-07-25 2 views
10

У меня возникли проблемы с установкой lxml на Mac OS. У меня возникает следующая ошибка при его создании. Это ошибка, я имею при использовании pip install lxmlНе удалось установить lxml в MacOS 10.8.4

/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

я установил libxml2 с варева:

brew install libxml2 
brew link libxml2 --force 

Я новичок в Mac. В Ubuntu это означает, что пакет libxml2-dev должен быть установлен.

Обновлено: здесь 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/s5hl5w4x7zjdjkdljw9cnsrm0000gn/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

Любая идея? Большое спасибо

+0

ли сообщение об ошибке в '~/.pip/pip.log'? После установки 'libxml2' с' brew', вы видите правильные файлы заголовков в '/ usr/include/libxml2/libxml'? Являются ли заголовки 'libxml2' определенно на вашем пути? – ChrisP

+0

@ChrisP, я обновил свой вопрос журналом. На моей машине нет папки/usr/include. –

+0

Надеюсь, кто-то придет, кто знает, что случилось. Моя единственная рекомендация прямо сейчас - убедиться, что заголовки libxml2 доступны через PATH. Homebrew должен установить на '/ usr/local', который по умолчанию находится в PATH. Вы можете найти файл 'xmlversion.h' на вашем компьютере, просто чтобы убедиться, что он есть? Если у вас возникают проблемы, я рекомендую дистрибутив [Enthought] (http://www.enthought.com) Python, который по умолчанию содержит множество инструментов для сборки (включая 'lxml'). Я знаю, что это не решит вашу точную проблему. – ChrisP

ответ

21

Оставьте xmlversion.h не включен в путь компиляции, даже если он находится в PATH. Измените C_INCLUDE_PATH окр исправить ошибку для меня:

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

+3

Просто подсказка для всех, кто наткнулся на это: у меня была такая же проблема, и это было исправление. '' 'export C_INCLUDE_PATH =/usr/local/Cellar/libxml2/2.9.1/include/libxml2: $ C_INCLUDE_PATH''' – zgohr

+0

Это компиляция lxml для меня на 10.9 и самостоятельная версия libxml2. Благодаря! – synthesizerpatel

+0

Если вы используете macports: export C_INCLUDE_PATH =/usr/local/include/libxml2: $ C_INCLUDE_PATH – Petri

19

Если вы работаете Mavericks с Xcode установлен, вы также можете использовать:

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

С Xcode 6 эта команда теперь: export C_INCLUDE_PATH =/Приложения/Xcode.app // Содержание/Разработчик/Платформы/MacOSX.platform/Разработчик/SDK/MacOSX10.9.sdk/usr/include/libxml2: $ C_INCLUDE_PATH – Markus

+4

Для OSX Yosemite теперь «экспорт» C_INCLUDE_PATH =/Приложения/Xcode.app/Содержание/Разработчик/Платформы/MacOSX.platform/Разработчик/SDK/MacOSX10.10.sdk/usr/include/libxml2: $ C_INCLUDE_PATH'' –

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

пожалуйста , дайте пояснения к своему коду – arghtype

+0

Не работает 10.10.2 – Bryson

5

Ни один из других ответов (экспорт C_INCLUDE_PATH) работал на меня. Однако установка переменной среды CFLAGS в встроенный корень OS X 10.10 libxml2 работала как шарм.

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

Это тот, который работал для меня 10.10.2 с помощью Fish shell. Сначала я открыл оболочку 'bash', затем сделал« экспорт », указанный здесь, затем перезапустил« pip install lxml », и установка окончательно завершилась успешно. Спасибо, Дэн! –

+1

@ NickK9 рад, что я мог бы помочь! –

+0

То же самое здесь, это единственное, что работает в 10.10.2 –

5

Я Python и LibXML установлены через варку, это работает для меня после попытки все выше:

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

Примечание: Вы должны проверить свои собственные пути для последних версий.

Поскольку заголовки доступны в другом месте и просматриваются в определенном каталоге (замечено в команде, вызывающей clang для компиляции), и по какой-то причине альтернативное место не подбирается, я сделал softlink справа место.

Смежные вопросы