我正在使用ctypes来加载我的库。代码就像
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脚本工作正常。
答案 0 :(得分:1)
如果您尝试在加载库代码的同一脚本中设置DYLD_LIBRARY_PATH
,我认为这不起作用。在python启动之前,需要在shell中设置环境变量。无论如何,在os.environ中设置它不会超出当前的python环境。
@summea在评论链接中引用的是需要创建某种类型的shell脚本,或者通过〜/ .profile或者操作系统和shell的等效位置将其添加到shell环境中。
它的工作原理,当你导出变量然后启动你的脚本时,变量是在python启动时设置的。同样,您可以使用类似DYLD_LIBRARY_PATH="path" ./script.py
的内容启动脚本,它也可以使用临时变量设置。