Не удается установить Lxml на Mac os x 10.9


Я хочу установить Lxml, чтобы затем я мог установить Scrapy.

когда я обновил свой Mac сегодня он не позволит мне переустановить lxml, я получаю следующую ошибку:

In file included from src/lxml/lxml.etree.c:314:
/private/tmp/pip_build_root/lxml/src/lxml/includes/etree_defs.h:9:10: fatal error: 'libxml/xmlversion.h' file not found
#include "libxml/xmlversion.h"
         ^
1 error generated.
error: command 'cc' failed with exit status 1

Я попытался использовать brew для установки libxml2 и libxslt, оба установлены нормально, но я все еще не могу установить lxml.

в прошлый раз, когда я устанавливал, мне нужно было включить инструменты разработчика на Xcode, но с момента его обновления до Xcode 5 он больше не дает мне эту опцию.

тут кто-нибудь знает, что мне нужно делать?

22 232

22 ответа:

вы должны установить или обновить средство командной строки для xcode. Попробуйте это в терминале:

xcode-select --install

я решил эту проблему на Yosemite, установив и связав libxml2 и libxslt через самогон:

brew install libxml2
brew install libxslt
brew link libxml2 --force
brew link libxslt --force

если вы решили проблему с помощью этого метода, но он появляется снова в более позднее время, вам может потребоваться запустить это до четыре строки выше:

brew unlink libxml2
brew unlink libxslt

если у вас возникли ошибки разрешения с Homebrew, особенно на El Capitan,это полезный документ. По сути, независимо от версии OS X, попробуйте работает:

sudo chown -R $(whoami):admin /usr/local

вы можете решить вашу проблему, запустив в командной строке:

 STATIC_DEPS=true pip install lxml

это, конечно, помогло мне. Объяснения по docs

Я пробовал большинство решений выше, но ни один из них не работал для меня. Я запускаю Yosemite 10.10, единственным решением, которое сработало для меня, было ввести это в терминал:

sudo CPATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2 CFLAGS=-Qunused-arguments CPPFLAGS=-Qunused-arguments pip install lxml

EDIT: если вы используете virtualenv, sudo в начале не требуется.

это беспокоило меня некоторое время. Я не знаю внутренности достаточно о Python distutils и т. д., Но пути здесь не так. Я сделал следующий уродливый хак, чтобы удержать меня, пока люди python lxml не смогут сделать правильное исправление.

sudo ln -s  /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2/libxml/ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml

установка во всем мире... OS X 10.9.2

xcode-select --install
sudo easy_install pip
sudo CPATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2 CFLAGS=-Qunused-arguments CPPFLAGS=-Qunused-arguments pip install lxml

инструкции по установке на http://lxml.de/installation.html объясните:

чтобы ускорить сборку в тестовых средах, например на сервере непрерывной интеграции, отключите оптимизацию компилятора C, установив переменную среды CFLAGS:

CFLAGS="-O0" pip install lxml

ни один из вышеперечисленных не работал для меня на 10.9.2, так как компиляция выходит со следующей ошибкой:

clang: error: unknown argument: '-mno-fused-madd' 

которые на самом деле приводят к чистому решению (см. Более подробную информацию в [1]):

export CFLAGS=-Qunused-arguments
export CPPFLAGS=-Qunused-arguments

pip install lxml

или после установки глобально

sudo pip install lxml

[1] ошибка clang: неизвестный аргумент: '- mno-fused-madd '(ошибка установки пакета python)

xcode-select --install
sudo easy_install pip
sudo pip install lxml

Я решил эту проблему на Yosemite, выполнив следующие команды:

xcode-select install #this may take several minutes.
pip install lxml

С доморощенного, библиотеки libxml2 скрыта, чтобы не мешать системе библиотеки libxml2, так типун, должно быть, помогло немного, чтобы найти его.

С Баша:

LDFLAGS=-L`brew --prefix libxml2`/lib CPPFLAGS=-I`brew --prefix libxml2`/include/libxml2 pip install --user lxml

С рыбой:

env LDFLAGS=-L(brew --prefix libxml2)/lib CPPFLAGS=-I(brew --prefix libxml2)/include/libxml2 pip install --user lxml

OSX 10.9.2

sudo env ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future STATIC_DEPS=true pip install lxml

Я перепробовал все ответы на этой странице, ни один из них не работал для меня. Я запускаю OS X версии 10.9.2

но это определенно работает....как шарм:

ARCHFLAGS=-кто-ошибке=неиспользованный-командная строка-аргумент-жесткий-ошибка-в-будущем пункт Установить этот пакет содержит файлы

к сожалению xcode-select --install не работает для меня, так как у меня уже была последняя версия.

это очень странно, но я решил проблему, открыв XCode и приняв условия и положения. Повторный запуск pip install lxml после этого не было возвращено никаких ошибок.

Я использую OSX 10.9.2 и я получаю ту же ошибку.

установка инструментов командной строки XCode не помогает для этой конкретной версии OSX.

Я думаю, что лучший способ исправить это-установить следующую команду:

$ CPATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2 pip install lxml

Это похоже на исправление jdkoftinoff, но не изменяет вашу систему постоянным образом.

Я встретил тот же вопрос и после нескольких дней работы я решил эту проблему на моей OS X 10.9.4, с Python 3.4.1.

вот мое решение,

по данным установка lxml от lxml.de,

в macport из lxml-это доступно. Попробуйте что-то вроде port install py25-lxml

если у вас нет MacPort, установите его с MacPort.org. Это довольно просто. Вам также может понадобиться компилятор, чтобы установите инструменты компиляции XCode, используйте xcode-select --install

во-первых, я обновил свой порт до последней версии через sudo port selfupdate,

тогда я просто типа sudo port install libxml2 и через несколько минут вы увидите, что libxml2 установлен успешно. Вероятно, вам также может понадобиться libxslt для установки lxml. Чтобы установить libxslt, используйте:sudo port install libxslt.

теперь просто введите pip install lxml, он должен работать нормально.

перед компиляцией добавьте путь к xmlversion.h в ваше окружение.

$ set INCLUDE=$INCLUDE:/private/tmp/pip_build_root/lxml/src/lxml/

но убедитесь, что путь, который я предоставил, имеет xmlversion.H-файл находится внутри. Тогда,

$ python setup.py install

pip не работает для меня. Я пошел в https://pypi.python.org/pypi/lxml/2.3 и скачал видео .файл яйца:

https://pypi.python.org/packages/2.7/l/lxml/lxml-2.3-py2.7-macosx-10.6-intel.egg#md5=52322e4698d68800c6b6aedb0dbe5f34

затем используется командная строка easy_install установка .

этот пост ссылается на решение, которое сработало для меня Python3, lxml и "символ не найден: _lzma_auto_decoder" на Mac OS X 10.9

hth

после успешной установки из pip (lxml 3.6.4) я получал сообщение об ошибке при импорте lxml.модуль etree.

Я искал бесконечно, чтобы установить это как необходимое для scrapy, и попробовал все варианты, но, наконец, это сработало для меня (mac osx 10.11 python 2.7):

$ STATIC_DEPS=true sudo easy_install-2.7 "lxml==2.3.5"

более старая версия lxml, похоже, работает с модулем etree.

Pip часто может игнорировать указанную версию пакета, например, когда у вас есть более новая версия Пип кэш, таким образом easy_install. Элемент '-2.7' опция для версии python, опустите это, если вы устанавливаете для python 3.x.

в моем случае, я должен shutdown Kaspersky Antivirus перед установкой lxml by:

pip install lxml

попробуй:

% STATIC_DEPS=true pip install lxml

или:

% STATIC_DEPS=true sudo pip install lxml

это работает!