Ответ 1
Вы должны установить или обновить инструмент командной строки для xcode. Попробуйте это в терминале:
xcode-select --install
Я хочу установить 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 он больше не дает мне эту опцию.
Кто-нибудь знает, что мне нужно делать?
Вы должны установить или обновить инструмент командной строки для xcode. Попробуйте это в терминале:
xcode-select --install
Я решил эту проблему на 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
Вы можете решить свою проблему, выполнив это в командной строке:
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 error: неизвестный аргумент: '-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
С 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
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 = -Wno-error = unused-command-line-argument-hard-error-in-future pip install lxml
К сожалению, xcode-select --install
не работал у меня, поскольку у меня уже была последняя версия.
Это очень странно, но я решил проблему, открыв XCode и приняв Условия. Повторный запуск pip install lxml
не возвращал ошибок после.
После успешной установки из 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.
В моем случае я должен закрыть Kaspersky Antivirus перед установкой lxml:
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,
Доступен макрос 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
, он должен работать нормально.
перед компиляцией добавьте путь к 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
и скачал файл macosx.egg:
Затем использовалась командная строка easy_install
для установки файла .egg
.
Это сообщение ссылается на решение, которое сработало для меня Python3, lxml и "Символ не найден: _lzma_auto_decoder" на Mac OS X 10.9
HTH
После долгих разрывов волос и скрежета зубов я удалил xcode с pip и запустил:
easy_install lxml
И все было хорошо.
Try:
% STATIC_DEPS=true pip install lxml
Или:
% STATIC_DEPS=true sudo pip install lxml
Это работает!