5

我刚刚在我的macbook pro(10.7.5)上安装了带有brew的python(2.7.4)。我还用 brew 安装了 exiv2 和 pyexiv2。当我从 python 解释器导入 pyexiv2 时,出现以下错误:

致命的 Python 错误:解释器未初始化(版本不匹配?)

我应该做些什么来纠正这个问题(考虑到我不想按照这个线程中的建议删除酿造的 python: How to install python library Pyexiv2 and Gexiv2 on osx 10.6.8?

非常感谢您的任何建议!

4

3 回答 3

4

在网上搜索并查看了一些复杂的解决方案后,我在Homebrew wiki中找到了解决这个问题的简单方法!

问题的根源是boost依赖库,它默认链接到系统 python 而不是来自wiki的 brewed python :

请注意,例如boost 瓶是针对系统 python 构建的,应该从源代码中提取以使其与酿造的 Python 一起使用。当两个 python 可执行文件是相同的版本(例如 2.7.2)时,甚至会发生这种情况。解释是具有 C 扩展名的 Python 包(具有 .so 文件的那些)是针对某个可能使用不同拱门构建的 Python 二进制/库编译的(例如,Apple 的 Python 仍然不是纯 64 位的)。其他事情也可能出错。欢迎来到 C 的肮脏黑社会。

(强调我的)

  1. 所以首先卸载依赖库和 pyexiv2 本身:

    brew rm $(brew deps pyexiv2)
    brew rm pyexiv2
    
  2. 然后按照此处boost所示从源安装:

    brew install boost --build-from-source
    

    注意:构建提升可能需要时间,所以请耐心等待,我的系统花了 27.9 分钟!(下面的输出)

    usr/local/Cellar/boost/1.54.0: 9865 files, 568M, built in 27.9 minutes
    
  3. 然后重新安装pyexiv2和依赖:

    brew install pyexiv2
    

就是这样,现在导入 pyexiv2 应该可以正常工作了。

于 2013-09-15T20:55:00.093 回答
1

检查您正在运行的 Python ( which python),并使用选项运行python-v查看它在哪里寻找模块。检查所有这些是否符合您的期望。然后运行brew doctor,如果没有任何问题,请报告错误。

于 2013-05-20T12:11:53.317 回答
0

我在 macOS Sierra 上使用 bool.dev 的回答在安装 pyexiv2 和 Homebrew 时遇到了很多麻烦。Homebrewed pyexiv2 在导入时不断抛出 Segmentation Fault 11。

我最终通过使用以下命令修改 bool.dev 的答案来安装并使用 Homebrewed Python:

brew install boost --build-from-source
brew install boost-python
brew install exiv2
sudo pip install git+https://github.com/escaped/pyexiv2.git

在陷入谷歌漏洞后,我在第 30 页的以下文档中找到了最后一行。

希望这可以帮助!

于 2016-11-08T03:08:52.867 回答