Ответ 1
Я удалил все версии python из
/Library/Frameworks/Python.framework/Versions/
после этого я переустановил python 3 с помощью brew и воссоздал символические ссылки, используя
brew link --overwrite python3
Я установил python 3 с помощью homebrew, а затем установил pip3 и lxml.
Следующая строка
из импорта импорта lxml
приводит к следующей ошибке:
$ python3
Python 3.3.5 (v3.3.5:62cf4e77f785, Mar 9 2014, 01:12:57)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from lxml import etree
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site- packages/lxml/etree.so, 2): Symbol not found: _lzma_auto_decoder
Referenced from: /Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/lxml/etree.so
Expected in: flat namespace
in /Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/lxml/etree.so
>>> exit();
Кто-нибудь знает, как это исправить?
Я удалил все версии python из
/Library/Frameworks/Python.framework/Versions/
после этого я переустановил python 3 с помощью brew и воссоздал символические ссылки, используя
brew link --overwrite python3
Удаление lxml и повторная установка lxml SECOND работали для меня (странно, не доволен этим решением):
pip3.4 uninstall lxml
pip3.4 install lxml
pip3 жалуется на то, что lxml уже установлен, удалите вручную файлы установки с помощью команды, например:
rm -fr /private/var/folders/dj/saljfdsf12_sd7s89dfg9080000rb/T/pip_build_user/lxml
Затем снова:
pip3.4 install lxml
И это сработало. Я не смог воспроизвести исходное сообщение об ошибке, чтобы найти основную причину этой проблемы.
Если вы используете Homebrew и имеете xz
, то должно работать следующее:
STATIC_DEPS=true CFLAGS=-I/usr/local/include/lzma pip install -U lxml
В противном случае установите CFLAGS в место, где расположены ваши заголовки lzma.
У меня была эта же проблема,
Что я сделал:
Во-первых, я гарантировал, что у меня не установлены порты py27-xml2
, py27-xslt
или py27-lxml
sudo port installed | grep py27
Я установил порт py27-pip
и проверил, что переменная $PATH указала на нее. Также установлен py27-setuptools
.
$ sudo port contents py27-pip | grep /pip$
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/pip
in ~/.bash_profile:
export PATH="/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
$ which pip
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/pip
Затем я установил lxml
с easy_install, который был расположен в той же директории, что pip
STATIC_DEPS=true sudo easy_install-2.7 lxml
Процесс сборки отображался:
$ STATIC_DEPS=true sudo easy_install-2.7 lxml
Searching for lxml
Reading https://pypi.python.org/simple/lxml/
Downloading
....
Building without Cython.
Using build configuration of libxslt 1.1.29
Building against libxml2/libxslt in the following directory: /Applications/MAMP/Library/
....
libxml/xmlversion.h: No such file or directory
Я переместил MAMP (похоже, уже пришел с этими libs) в конце $PATH, удалил lxml
(отображается ошибка "Symbol not found: _lzma_auto_decoder" ) и повторила последнюю команду:
$ STATIC_DEPS=true sudo easy_install-2.7 -m "lxml==3.6.4"
in ~/.bash_profile:
export PATH="/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}:/Applications/MAMP/Library/bin:/Applications/MAMP/Library"
$ source ~/.bash_profile
$ STATIC_DEPS=true sudo easy_install-2.7 lxml
Это фиксировало ошибку либо внутри, либо снаружи virtualenv
$ python
Python 2.7.12 (default, Jun 29 2016, 12:46:54)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from lxml import etree
>>>