我已经尝试过这个并在过去多次遇到问题。有没有人有在没有 MacPorts 或 Fink 的情况下在 OS X 上安装 lxml 的方法,这绝对有效?
最好使用完整的 1-2-3 步骤来下载和构建每个依赖项。
我已经尝试过这个并在过去多次遇到问题。有没有人有在没有 MacPorts 或 Fink 的情况下在 OS X 上安装 lxml 的方法,这绝对有效?
最好使用完整的 1-2-3 步骤来下载和构建每个依赖项。
感谢 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
这对我有用(10.6.8):
sudo env ARCHFLAGS="-arch i386 -arch x86_64" easy_install lxml
我在Homebrew安装libxml2
依赖项方面非常幸运:
brew install libxml2
Homebrew 似乎没有libxslt
可用,但我还没有需要 XSLT。YMMV。
一旦有了依赖项,通常的方法就可以正常工作:
pip install lxml
或者
easy_install lxml
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) 上使用 homebrew (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 libxml2
sudo easy_install lxml
这包括来自以下方面的建议:
但我想把它编译成一个答案,而不是到处留下评论
在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”等等。
根据官方网站,我应该使用STATIC_DEPS=true pip install lxml
(如果需要,请在 pip 之前添加 sudo),这解决了我的问题。
我在故障排除时运行brew install libxml2
并brew install libxslt
安装了依赖项。我不确定这两个命令是否必要。
要安装最新版本的 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
尝试安装 Cython 并从源代码安装,easy_install 确实失败。我还没有在我的mac上试过。
没有端口版本不是那么古老。您可以看到依赖项,其中一些必须针对我的 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 平台:darwin 维护者:akitada@macports.org openmaintainer@macports.org
这是最新的 - 2009 年 3 月:http: //lsimons.wordpress.com/2008/08/31/how-to-install-lxml-python-module-on-mac-os-105-leopard/
对于过时的 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。