2012-02-22 81 views
0

我正在使用ctypes加载我的库。代码是一样的东西如何使用python脚本在mac上导出DYLD_LIBRARY_PATH

currPath = os.getcwd() 
libPath = os.path.join(currPath, platform) 
print libPath 
if(platform == 'win32'): 
    os.environ['PATH'] = os.environ['PATH'] + r';' + libPath 
if(platform == 'darwin'): 
    os.environ['DYLD_LIBRARY_PATH'] = libPath {/Users/labuser/Desktop/lib} 
print os.environ['DYLD_LIBRARY_PATH'] 

但是当我尝试加载我的图书馆,它没有找到库路径。

什么是可能的解决方案。在启动python脚本之前在终端上,我输出DYLD_LIBRARY_PATH = PATH,那么我的python脚本就可以正常工作。

+1

你见过这个问题/答案:http://superuser.com/questions/282450/where-do-i-set-dyld-library-path-on-mac-os-x-and-is-it -一个好主意 ? – summea 2012-02-22 06:38:47

回答

1

如果您试图在加载库代码的同一脚本中设置DYLD_LIBRARY_PATH,我认为这不起作用。环境变量需要在python启动之前从shell中设置。无论如何,在os.environ中设置它不会超越当前的Python环境。

@summea在他的注释链接中提到的是需要创建某种类型的shell脚本,或者通过〜/ .profile或任何与您的操作系统和shell相同的位置将其添加到shell环境中。

它的工作原理是,当你导出变量然后启动你的脚本时,该变量是在python启动时设置的。同样你也可以用DYLD_LIBRARY_PATH="path" ./script.py之类的东西启动你的脚本,它也可以用于临时变量设置。

相关问题