2010-03-03 4 views
22

Я пришел к выводу, что ElementTree не собирается делать то, что я хочу. Я проверил документацию по lxml, и кажется, что она будет служить моим целям. Чтобы получить lxml, мне нужно получить easy_install. Поэтому я загрузил его с here и положил его в /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/. Затем я пошел в эту папку и запустил sh setuptools-0.6c11-py2.6.egg.Установка easy_install ... для установки lxml

Это успешно установлено. Тогда я был взволнован, потому что я думал, что весь смысл easy_install состоял в том, что я мог бы просто установить через easy_install lxml, а lxml волшебным образом загрузился, был бы построен и установлен правильно, готовый для моего импорта. Поэтому я побежал easy_install lxml. Я приклеил результаты ниже. Что мне делать?

easy_install lxml 
Searching for lxml 
Reading http://pypi.python.org/simple/lxml/ 
Reading http://codespeak.net/lxml 
Best match: lxml 2.2.6 
Downloading http://codespeak.net/lxml/lxml-2.2.6.tgz 
Processing lxml-2.2.6.tgz 
Running lxml-2.2.6/setup.py -q bdist_egg --dist-dir /var/folders/49/49N0+g5QFKCm51AbzMtghE+++TI/-Tmp-/easy_install-rxbP6K/lxml-2.2.6/egg-dist-tmp-fjakR0 
Building lxml version 2.2.6. 
NOTE: Trying to build without Cython, pre-generated 'src/lxml/lxml.etree.c' needs to be available. 
Using build configuration of libxslt 1.1.12 
Building against libxml2/libxslt in the following directory: /usr/lib 
unable to execute gcc-4.0: No such file or directory 
error: Setup script exited with error: command 'gcc-4.0' failed with exit status 1 
+1

(re: проблемы с редактором кода) Отступ на четыре пространства для создания кодового блока или щелчок по кнопке «01010» в редакторе, в то время как некоторые вещи выделены. –

ответ

23

Прежде всего, мы больше не используем easy_install. Мы используем pip. Вместо этого используйте pip.

Чтобы узнать о ваших конкретных проблемах, как отмечают в комментариях, вам не хватает GCC. В OS X, Xcode Средства командной строки предоставляют GCC, а также множество других программ, необходимых для создания программного обеспечения на OS X. Для OS X 10.9 (Mavericks) и новее, либо установите Xcode через App Store, либо, альтернативно, установите только Xcode Инструменты командной строки с

xcode-select --install 

Для получения более подробной информации, пожалуйста, см Apple Developer FAQ или искать в Интернете "установить Xcode Command Line Tools".

Для более старых версий OS X вы можете получить инструменты командной строки Xcode с downloads page of the Apple Developer website (требуется бесплатная регистрация).

Как только вы установили GCC, вы можете столкнуться с ошибками во время компиляции, если зависимости в C/C++ в вашей системе не установлены. В OS X проект Homebrew - это самый простой способ установки и управления такими зависимостями. Следуйте инструкциям на веб-сайте Homebrew установить Homebrew на вашей системе, а затем выдать

brew update 
brew install libxml2 libxslt 

Возможно, причиной дальнейших неприятностей в вашем случае, вы разместили загруженные Setuptools в /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/. Пожалуйста, не загружайте файлы в это место. Вместо этого я предлагаю вам загрузить файл в домашний каталог или в ваш обычный каталог Downloads. После его загрузки вы должны запустить sh setuptools-X.Y.Z.egg, который затем правильно установит его в соответствующий site-packages и поместит исполняемый файл easy_install на ваш путь.

+0

+1 для указания мы должны использовать пип. Не имел представления. Приятно, когда пакеты просто работают. – Muhd

+2

+1 для отличной графики – Purrell

+0

Над пипой ссылка сломана. Я думаю, что это: https://pip.pypa.io/en/latest/ –

2

Похоже lxml хочет построить расширение, которое требует доступа к компилятору. Для этого вам понадобится gcc. Попробуйте запустить sudo apt-get install build-essential, и это должно устранить эту проблему.

+0

sudo apt-get install gcc sudo: apt-get: команда не найдена – Alex

+1

Что такое OS/распространение? –

+0

OSX 10.5.8, python 2.6 – Alex

13

Убедитесь, что вы имеете libxml2-DEV и libxslt1-DEV установлен

apt-get install libxml2-dev 
apt-get install libxslt1-dev 

Тогда ваша установка должна построить правильно.

+0

Спасибо, что указали – Purrell

+0

Спасибо. это сработало! –

10

попробовать: sudo apt-get install python-lxml

+0

Для Python3 используйте «apt-get install python3-lxml» – wheleph

+0

Лучше использовать пип. Это даст вам более новую версию, чем ваш поддерживающий пакет. Рано или поздно вы будете рады, что вы его использовали. – mlissner

2

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

gcc gcc-c++ python-devel libxml2 libxml2-dev libxslt libxslt-dev 

Вы должны быть в состоянии установить их с помощью какого-то варианта: Sudo APT-получить установить sudo yum install

Только после того, как все вышеперечисленные были успешно установлены, если вы попытаетесь запустить:

sudo pip install lxml 
Смежные вопросы