gpt4 book ai didi

python - 删除了 MacPorts,现在 Python 被破坏了

转载 作者:太空狗 更新时间:2023-10-30 01:02:42 27 4
gpt4 key购买 nike

我已从我的 Mac (10.7.5) 中删除了 MacPorts,现在 Python 似乎已损坏。我正在尝试运行 scrapy,最后出现以下错误:

ImportError: dlopen(/Library/Python/2.7/site-packages/lxml-2.3.4-py2.7-macosx-10.7-intel.egg/lxml/etree.so, 2): Symbol not found: _exsltDateXpathCtxtRegister
Referenced from: /Library/Python/2.7/site-packages/lxml-2.3.4-py2.7-macosx-10.7-intel.egg/lxml/etree.so
Expected in: /usr/lib/libexslt.0.dylib
in /Library/Python/2.7/site-packages/lxml-2.3.4-py2.7-macosx-10.7-intel.egg/lxml/etree.so

当我运行 python 并尝试导入该库时,我得到了如下相同的错误:

$ python
Python 2.7.2 (v2.7.2:8527427914a2, Jun 11 2011, 14:13:39)
[GCC 4.0.1 (Apple Inc. build 5493)] 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/Python/2.7/site-packages/lxml-2.3.4-py2.7-macosx-10.7-intel.egg/lxml/etree.so, 2): Symbol not found: _xsltDocDefaultLoader
Referenced from: /Library/Python/2.7/site-packages/lxml-2.3.4-py2.7-macosx-10.7-intel.egg/lxml/etree.so
Expected in: flat namespace
in /Library/Python/2.7/site-packages/lxml-2.3.4-py2.7-macosx-10.7-intel.egg/lxml/etree.so

现在我该如何收拾这个烂摊子?

最佳答案

假设这是系统Python,你通过pip安装了lxml,10.7.5自带的libxml2版本就足够了(我认为他们在 10.7 中开始发布一些最新版本——如 2.7.x——但我记不太清了),它应该像这样简单:

sudo pip uninstall lxml
sudo pip install lxml

这里的问题是 lxml 是针对 MacPorts libxml2/libxslt2 构建的,而不是针对您的系统版本构建的。从理论上讲,可以使用 install_name_tool 重新指向依赖项,但这更有可能惨败——或者,如果你真的不走运,看起来可以工作,但当你真正需要它时却崩溃了……只需重新构建 lxml 即可解决问题。如果您使用了 pip,那就像卸载/重新安装一样简单。

如果您没有使用 pip,请从干净的 tarball 副本重新执行手动 sudo python setup.py install,或者重新执行 code>sudo easy_install lxml,或在您已有的基础上执行 sudo pip install lxml可能 会起作用,但不能保证。

如果我对 Lion 带有体面的 libxml2 的看法是错误的,请在评论中指出,我会为您提供获取它的选项(无需重新安装 MacPorts)。

如果你真的想确定你已经清理了所有东西,你总是可以通过这样做将你的系统站点包恢复到它们的默认状态:

sudo rm -rf /Library/Python/2.7/site-packages/*
rm -rf ~/Library/Python/2.7/site-packages/*

然后,当然,您必须重新安装您安装的所有内容。 (如果您上次没有使用 pip,请从 sudo easy_install pip 开始,然后使用 pip 进行其他操作……)您可以得到一个只需在这些相同的目录上执行 ls 就可以很好地了解您安装的内容,但这不一定会告诉您如何您安装了所有内容。 (例如,我用 pip install git+https://some.site/some/repo 安装了几个包,或者从二进制安装程序安装了几个包,或者在一种情况下我绝对不知道……)因此,如果您别无选择,请考虑将此作为核选项 — 不是首选,但比重新安装 OS X 的热核选项要好。

关于python - 删除了 MacPorts,现在 Python 被破坏了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14153221/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com