Не удается установить 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 ответа:
вы должны установить или обновить средство командной строки для 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)
Я решил эту проблему на
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 и скачал видео .файл яйца:затем используется командная строка
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.