我正在使用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
而不会破坏我的计算机?
非常感谢任何帮助。谢谢!
答案 0 :(得分:3)
尝试永久设置DYLD_LIBRARY_PATH
几乎总是表明你做错了什么。在OS X上,精心设计的组件将绝对路径或RPATH
嵌入到共享库中,因此很少需要设置环境变量来覆盖库搜索路径。
由于您显示路径/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
。