Не удается установить 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 он больше не дает мне эту опцию.

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

Ответ 1

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

xcode-select --install

Ответ 2

Я решил эту проблему на Yosemite, установив и связав libxml2 и libxslt с помощью brew:

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

Ответ 3

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

 STATIC_DEPS=true pip install lxml

Это помогло мне. Пояснения к docs

Ответ 4

Я попробовал большинство решений выше, но никто из них не работал у меня. Я запускаю 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 в начале не требуется.

Ответ 5

Это немного беспокоило меня. Я не знаю внутренности достаточно о 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

Ответ 6

Установка по всему миру... 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

Ответ 7

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

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

CFLAGS="-O0" pip install lxml

Ответ 8

Ни один из вышеперечисленных не работал у меня в 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 error: неизвестный аргумент: '-mno-fused-madd' (сбой установки пакета python)

Ответ 9

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

Ответ 10

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

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

Ответ 11

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

С bash:

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

Ответ 12

OSX 10.9.2

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

Ответ 13

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

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

ARCHFLAGS = -Wno-error = unused-command-line-argument-hard-error-in-future pip install lxml

Ответ 14

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

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

Ответ 15

После успешной установки из 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.

Ответ 16

В моем случае я должен закрыть Kaspersky Antivirus перед установкой lxml:

pip install lxml

Ответ 17

Я использую 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 ', но не изменяет вашу систему в постоянном режиме.

Ответ 18

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

Здесь мое решение,

В соответствии с установкой lxml из lxml.de,

Доступен макрос lxml. Попробуйте что-то вроде установки порта 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, он должен работать нормально.

Ответ 19

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

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

Но убедитесь, что путь, который я предоставил, содержит файл xmlversion.h, расположенный внутри. Тогда,

$ python setup.py install

Ответ 22

После долгих разрывов волос и скрежета зубов я удалил xcode с pip и запустил:

easy_install lxml

И все было хорошо.

Ответ 23

Try:

% STATIC_DEPS=true pip install lxml

Или:

% STATIC_DEPS=true sudo pip install lxml

Это работает!