2

我正在使用 Python 2.7 并尝试导入 graph_tool,似乎我的 libboost_thread-mt.dylib 位于 /opt/local/lib 而不是 /usr/local/lib。

如果我启动一个 X11 终端并输入

   export DYLD_LIBRARY_PATH='/opt/local/lib' 

然后 Python 成功导入了 graph_tool。另一方面,如果我添加

   export DYLD_LIBRARY_PATH='/opt/local/lib':$DYLD_LIBRARY_PATH

~/.bash_profile,X11 停止工作。我真的很困惑这里发生了什么。为什么我不能在不破坏计算机的情况下永久/opt/local/lib添加?$DYLD_LIBRARY_PATH

任何帮助深表感谢。谢谢!

4

1 回答 1

3

试图永久设置DYLD_LIBRARY_PATH几乎总是表明你做错了什么。在 OS X 上,精心设计的组件会将绝对路径或RPATHs 嵌入到共享库中,因此很少需要设置环境变量来覆盖库搜索路径。

由于您显示 path /opt/local/lib,我假设您使用的是 MacPorts,因为这是它的默认安装路径。如果您无法导入 MacPorts 安装的 Python 包,则可能是您使用了错误的 Python 实例。MacPorts 将所有 Python 包安装到它自己的 Python 解释器中。所以,如果你安装了 Python 2.7 版本:

sudo port install py27-graph-tool

MacPorts 也会安装(如果尚未安装)它自己python2.7/opt/local/bin. 尝试运行它并在那里进行导入。

/opt/local/bin/python2.7

如果你还没有,你应该/opt/local/bin在 shell 启动文件中添加你的 shell PATH,比如~/.profile,所以你不需要总是输入/opt/local/bin.

于 2014-07-25T20:40:42.817 回答