jea*_*ean 5 python homebrew pyexiv2
我刚刚在我的macbook pro(10.7.5)上安装了带有brew的python(2.7.4).我还用brew安装了exiv2和pyexiv2.当我从python解释器导入pyexiv2时,我收到以下错误:
致命的Python错误:解释器未初始化(版本不匹配?)
我应该做些什么来纠正这个问题(考虑到我不想按照这个帖子中的建议删除brewed python: 如何在osx 10.6.8上安装python库Pyexiv2和Gexiv2?)
非常感谢任何建议!
经过大量搜索并查看网络上的一些复杂解决方案后,我在Homebrew wiki 本身中找到了解决此问题的简单方法中找到了解决此问题的简单方法!
问题的根源是boost依赖库,它默认链接到系统 python,而不是来自 wiki 的breed python:
请注意,例如boost Bottle 是针对系统 python 构建的,并且应该从源代码编译以使其与编译的 Python 一起工作。当两个 python 可执行文件是相同版本(例如 2.7.2)时,甚至可能会发生这种情况。解释是,具有 C 扩展名的 Python 包(具有 .so 文件的包)是针对某个可能使用不同架构构建的 Python 二进制文件/库进行编译的(例如 Apple 的 Python 仍然不是纯 64 位)。其他事情也可能出错。欢迎来到 C 的肮脏地下世界。
(强调我的)
因此,首先使用以下命令卸载依赖库和 pyexiv2 本身:
brew rm $(brew deps pyexiv2)
brew rm pyexiv2
Run Code Online (Sandbox Code Playgroud)然后按照此处boost所示从源安装:
brew install boost --build-from-source
Run Code Online (Sandbox Code Playgroud)
注意:构建提升可能需要时间,所以请耐心等待,我的系统花了 27.9 分钟!(输出如下)
usr/local/Cellar/boost/1.54.0: 9865 files, 568M, built in 27.9 minutes
Run Code Online (Sandbox Code Playgroud)然后重新安装 pyexiv2 和依赖项:
brew install pyexiv2
Run Code Online (Sandbox Code Playgroud)就是这样,现在导入 pyexiv2 应该可以完美地工作。