【发布时间】:2010-11-19 14:42:20
【问题描述】:
过去我已经尝试过很多次,但也遇到过很多问题。有没有人有在没有 MacPorts 或 Fink 的情况下在 OS X 上安装 lxml 的方法?
最好使用完整的 1-2-3 步骤来下载和构建每个依赖项。
【问题讨论】:
标签: python macos shell lxml osx-leopard
过去我已经尝试过很多次,但也遇到过很多问题。有没有人有在没有 MacPorts 或 Fink 的情况下在 OS X 上安装 lxml 的方法?
最好使用完整的 1-2-3 步骤来下载和构建每个依赖项。
【问题讨论】:
标签: python macos shell lxml osx-leopard
感谢 Twitter 上的@jessenoller,我有一个适合我需要的答案 - 您可以使用静态依赖项编译 lxml,从而避免弄乱 OS X 附带的 libxml2。这对我有用:
cd /tmp
curl -O http://lxml.de/files/lxml-3.6.0.tgz
tar -xzvf lxml-3.6.0.tgz
cd lxml-3.6.0
python setup.py build --static-deps --libxml2-version=2.7.3 --libxslt-version=1.1.24
sudo python setup.py install
【讨论】:
curl -O。
这对我有用 (10.6.8):
sudo env ARCHFLAGS="-arch i386 -arch x86_64" easy_install lxml
【讨论】:
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,这是我尝试导入时发生的情况:ImportError: No module named lxml
chuckles 建议的:stackoverflow.com/a/7850559/179581 吗?
import lxml 有效,但 import lxml.etree 无效。相关:stackoverflow.com/questions/19557304/… 和 stackoverflow.com/questions/17766725/how-to-re-install-lxml/…
我很幸运地使用Homebrew 安装了libxml2 依赖项:
brew install libxml2
Homebrew 似乎没有libxslt 可用,但我还不需要 XSLT。 YMMV。
一旦你有了依赖,那么通常的方法就可以正常工作了:
pip install lxml
或
easy_install lxml
【讨论】:
error: command 'gcc-4.2' failed with exit status 1。然而,上面的解决方案确实有效。
Easy_install 可以使用这个:
STATIC_DEPS=true easy_install 'lxml>=2.2beta4'
您可能然后需要运行,具体取决于权限;
STATIC_DEPS=true sudo easy_install 'lxml>=2.2beta4'
见 http://muffinresearch.co.uk/archives/2009/03/05/install-lxml-on-osx/
【讨论】:
在 el capitan (10.11.1) 上使用自制软件 (0.9.5) 以下对我有用:
brew install libxml2
LD_FLAGS=-L/usr/local/opt/libxml2/lib CPPFLAGS=-I/usr/local/opt/libxml2/include/libxml2 pip install lxml
【讨论】:
这在 10.8.5 对我有用
ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"brew install libxml2sudo easy_install lxml这包括来自以下方面的建议:
但我想把它编译成一个答案,而不是让 cmets 到处都是
【讨论】:
xcode-select --install
在 OS X 10.9.1 上,上述建议的答案在安装过程中出错 - 必须进行以下更改:
cd /tmp
curl -o lxml-3.3.0.tgz http://lxml.de/files/lxml-3.3.0.tgz
tar -xzvf lxml-3.3.0.tgz
cd lxml-3.3.0
python setup.py build --static-deps --libxml2-version=2.8.0 --libxslt-version=1.1.24
sudo python setup.py install
【讨论】:
我在 Snow Lepoard 上运行良好,但在升级到 Lion 后,我不得不将 gcc-4.2 符号链接到 gcc。运行 sudo env ARCHFLAGS="-arch i386 -arch x86_64" easy_install lxml 正在寻找 gcc-4.2 而不是 gcc。
【讨论】:
我正在使用 OSX 10.11 El Capitan 和 Homebrew。使用pip install lxml 会给我“致命错误:找不到'libxml/xmlversion.h'文件”和“失败,错误代码1”等等。
根据official website,我应该使用STATIC_DEPS=true pip install lxml(如果需要,请在 pip 之前添加 sudo),这解决了我的问题。
我在故障排除时运行了brew install libxml2 和brew install libxslt 来安装依赖项。我不确定这两个命令是否必要。
【讨论】:
尝试安装 Cython 并从源代码安装,easy_install 确实失败。不过,我还没有在我的 Mac 上尝试过。
ports 版本并没有那么古老。您可以看到依赖项,其中一些必须针对我的 Linux 构建的 lxml 进行更新。
信息 py25-lxml py25-lxml @2.1.5 (python, devel)
lxml 是 libxml2 和 libxslt 库的 Pythonic 绑定。它是独一无二的 因为它将这些库的速度和功能完整性与 原生 Python API 的简单性,大部分兼容但优于 著名的 ElementTree API。 主页:http://codespeak.net/lxml/
库依赖:python25、libxml2、libxslt、py25-hashlib、py25-setuptools、 py25-zlib 平台:达尔文 维护者:akitada@macports.org openmaintainer@macports.org
【讨论】:
【讨论】:
要安装最新版本的 libxml2 和 libxslt:
ARCHFLAGS="-arch i386 -arch x86_64" STATIC_DEPS=true pip install lxml
要安装特定版本的库:
ARCHFLAGS="-arch i386 -arch x86_64" STATIC_DEPS=true LIBXML2_VERSION=2.7.3 LIBXSLT_VERSION=1.1.24 pip install lxml
CentOS 64 位(有点题外话,但来之不易):
CFLAGS=-fPIC STATIC_DEPS=true pip install lxml
或
CFLAGS=-fPIC STATIC_DEPS=true LIBXML2_VERSION=2.7.3 LIBXSLT_VERSION=1.1.24 pip install lxml
【讨论】:
对于一个过时的 10.6.8 os x 来说,这会带来很多痛苦,但对于任何运行 Snow Leopard 的人来说都是如此!
首先,您必须从 homebrew 安装不同版本的 libxml2 并安装 --with-python。您可以通过键入以下命令来执行此操作。
brew update
brew edit libxml2
然后找到显示“--without-python”的行并更改为“--with-python”。
system "./configure", "--disable-dependency-tracking",
"--prefix=#{prefix}",
"--with-python"
现在您可以安装 libxml2。
brew install libxml2
接下来检查您在默认自制位置中新安装的 libxml2。你想找到 libxml2 配置。
您可能会有所不同:
"/usr/local/Cellar/libxml2/VERSION_/bin/xml2-config"
现在使用以下命令使用新安装的 libxml2 配置而不是 Mac OS X 版本通过 pip 安装 lxml。
ARCHFLAGS="-arch i386 -arch x86_64" pip install lxml --install-option="--with-xml2-config=/usr/local/Cellar/libxml2/2.9.1/bin/xml2-config"
在我的 10.6.8 Python 2.6 上为我工作。谢谢。
感谢这个页面向我展示了 pip --install-option ...
【讨论】:
我在/usr/local 编译它没有任何问题。
安装 Python、libxml2、libxslt 和 lxml。您可能还需要安装 setuptools。
【讨论】: