我想为^{
我想在Python中从开始
我在用macOS
如果我想从Python外部执行此操作,我可以使用LD_LIBRARY_PATH
指定位置。但是,我已经读到,我不能在Python中将这个环境变量修改为it is cached on Python's startup。修改值然后重新启动Python似乎是一个非常无用的想法;例如,如果库是在执行过程中导入的,会发生什么情况
我为什么要这样做?因为我想在Windows下工作的Python库中添加一个MacOS控制盘。目前,他们正在将DLL打包到与Python源文件相同的目录中,并将该路径添加到Windows的path环境中,该环境进行ctypes.util.find_library()
搜索——这是一种我似乎无法在Mac下复制的技术
我试着去理解。它似乎表明Python库不依赖于任何共享对象。我怀疑这是因为dylib是使用ctypes.util.find_library()
动态加载的,而不是在Python中编译代码
如有任何建议,我们将不胜感激
尽管有一些环境变量(
LD_LIBRARY_PATH
和DYLD_LIBRARY_PATH
)会影响共享库的搜索路径,但在Python启动时,它们会被Python读取并修复。因此,这一选择被取消相反,我们采取了Python documentation中暗示的方法:
我们对每个操作系统包含的库的名称进行了硬编码,此外,我们还为未包含库的操作系统添加了一个通用名称:
库加载代码检查是否可以找到当前操作系统的指定库。如果不成功,则搜索“外部”库
库加载代码可以在PyOgg项目中找到;见Library.load()
此外,受delocate project的启发,我们需要编辑在某些dylib中找到的路径。例如,我们编辑了
opusfile
二进制文件以指向在我们的包中找到的ogg
二进制文件:有关此过程的详细信息,请参阅PyOgg项目中与macOS二进制文件关联的README file
关于该方法的进一步讨论可以在PyOgg的GitHub页面(#32)上提出的问题中找到
相关问题 更多 >
编程相关推荐