импорт lxml завершается неудачно в OSX после (казалось бы) успешной установки - PullRequest
4 голосов
/ 24 марта 2012

Я пытаюсь установить lxml для python на OS X 10.6.8

Я запустил sudo env ARCHFLAGS="-arch i386 -arch x86_64" easy_install lxml в терминале на основе этого ответа на вопрос об установке lxml: https://stackoverflow.com/a/6545556/216336

Это был вывод этой команды:

MYCOMPUTER:~ MYUSERNAME$ sudo env ARCHFLAGS="-arch i386 -arch x86_64" easy_install lxml
Password:
Searching for lxml
Reading http://pypi.python.org/simple/lxml/
Reading http://codespeak.net/lxml
Best match: lxml 2.3.3
Downloading http://lxml.de/files/lxml-2.3.3.tgz
Processing lxml-2.3.3.tgz
Running lxml-2.3.3/setup.py -q bdist_egg --dist-dir /tmp/easy_install-ytPLAc/lxml-2.3.3/egg-dist-tmp-NgYLdF
Building lxml version 2.3.3.
Building without Cython.
Using build configuration of libxslt 1.1.24
Adding lxml 2.3.3 to easy-install.pth file

Installed /Library/Python/2.6/site-packages/lxml-2.3.3-py2.6-macosx-10.6-universal.egg
Processing dependencies for lxml
Finished processing dependencies for lxml

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

Last login: Sat Mar 24 15:26:04 on ttys000
MYCOMPUTER:~ MYUSERNAME$ python2.7
Python 2.7.2 (v2.7.2:8527427914a2, Jun 11 2011, 15:22:34) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import lxml
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named lxml

Кажется, тот факт, что я установил на 2.6 и у меня работает 2.7, - ключ, но я не знаю, что с этим делать.

Ответы [ 2 ]

4 голосов
/ 25 марта 2012

Вы установили более новую версию Python (2.7.2), но вам также необходимо установить и использовать копию easy_install (из Distribute или setuptools) для использования сЭто.В итоге вы использовали стандартную версию Apple easy_install, связанную с Python 2.6 от Apple.Обратите внимание на /Library/Python/2.6 в выводе easy_install.(Вы можете проверить это, попытавшись импортировать lxml при использовании /usr/bin/python2.6.) После установки easy_install с использованием Python 2.7 новый easy_install должен быть первым на пути к вашей оболочке, если вы использовали стандартный python.orgУстановщик по умолчанию.Если нет, обновите ваш PATH:

export PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"

Затем easy_install lxml, используя его.С python.org 2.7.2 вам не нужно добавлять переменную окружения ARCHFLAGS, но это не повредит.

1 голос
/ 25 марта 2012

Вы должны быть в состоянии запустить:

sudo env ARCHFLAGS="-arch i386 -arch x86_64" easy_install-2.7 lxml

При этом будет использоваться версия easy_install, поставляемая с вашей установкой 2.7.

...