当前位置: 首页 > 面试题库 >

Python runtime_library_dirs在Mac上不起作用

方树
2023-03-14
问题内容

我有一个Python扩展模块,需要在运行时链接到一些动态库,所以我需要告诉它在哪里寻找它们。我通过在setup.py中指定runtime_library_dirs来做到这一点。这在Linux上工作正常,但在Mac上似乎没有作用。当我尝试导入模块时,我收到一个ImportError,而我发现使其消失的唯一方法是在启动python之前将库目录添加到DYLD_LIBRARY_PATH中。我需要做些什么才能使这项工作?


问题答案:

我终于想通了。解决方案包括两个部分。首先,setup.py需要使用extra_link_args来告诉链接器向编译后的模块添加正确的rpath:

if platform.system() == 'Darwin':
    extra_link_args.append('-Wl,-rpath,'+lib_path)

其中lib_path是安装库的目录。其次,要链接的所有库都 必须 具有以“ @ rpath /”开头的安装名称。例如,如果一个库名为“
libFoo.dylib”,则其安装名称应为“ @ rpath / libFoo.dylib”。您可以使用“ install_name_tool
-id”来更改库的安装名称。



 类似资料:
  • 我在10.13.6高地使用Mac 我尝试设置一个Rails应用程序在Mac上本地运行。当我尝试使用“createdb xyz”和“bin/setup”设置数据库时,我收到一条错误消息: 数据库“xyz”不存在致命错误:角色“postgres”不存在 无法为 {“适配器”= 创建数据库 有什么办法解决这个问题吗?

  • 我有一种字体在IE8和IE9以及所有其他浏览器中都能正常工作,但第二种字体只在IE9和其他浏览器中工作。在IE8中,我得到了一个错误: “CSS3111:@font-face遇到未知错误。” 我一直在四处看书,尝试了很多事情,但都没有运气。 我的代码是: 我试过用几个不同的生成器多次重新生成eot,玩过CSS,玩过头,玩过域,等等,但是看起来它们都很好。如前所述,相同的代码在相同的,只是指向不同的

  • 我实现了spring Security3.2.5,但不幸的是@preauthorize不能用于类和方法。正如我从文档中读到的,@preauthorize应该允许方法和类工作,如果用户在注释中有指定的角色,但我能够运行所有方法或类,而没有任何角色差异。您可以看到security-config.xml和security.context.xml以及我在下面声明@preauthorize注释的类。如果你能

  • 问题内容: 我正在尝试使形状的动画随着样本大小的增加(从100增加到1000)而呈指数分布。还有一个滑块,用于配置发行版的lambda参数,以及一个用于启动动画的按钮。 我的问题是,即使布局得到渲染,当我按下开始按钮时也没有动画发生。到目前为止,这是我的尝试: 为了简化起见,我在Python笔记本中运行它: 问题答案: 您应该注意函数的名称空间。 考虑 因此,您需要处理实际对象,而不是它们的某些本

  • 我的代码没有验证select。怎么了?。这个问题的解决方案是什么?很抱歉我的英语不好,非常感谢你的回答 这是我的表格 我的Javacript 忽略它:Lorem ipsum dolor sit amet,奉献精英。毛里斯·塞德·里索斯和莫利斯·迪克特。在faucibus中,Interdum和malesuada在第一次同侧前就出名了。我是一个爱的人。我是帕特·泰勒斯,我是康格·奈克。南阿罗特鲁姆尼斯

  • 问题内容: 我正在做一个API,它在Heroku上。但是我只在heroku方面遇到了socket.io的一些问题,当我在本地对其进行测试时一切正常。该API完全独立于前端,因此它们位于不同的域(和不同的主机)中。问题是在生产中,我无法成功连接插座… 我有一些问题,所有这些都是关于heroku上的socket.io配置的。我知道有些帖子包含有关此信息的信息,但是我发现这些帖子使用的是旧版本的sock

  • 我是的新手,我必须制作一个音乐播放器。我从github中举了一个例子,我正在实现我需要的东西,但是当我将代码从更新到时,它会给我一个关于的错误: Android.app.remoteserviceException:StartForeground的错误通知:java.lang.runtimeException:服务通知的无效通道:通知(通道=null pri=0 contentview=null振

  • 我有以下方法:1使用“SHQueryRecycleBin”查询回收站 但是,当我试图在. Net Core 3.1“SHQueryRecyclbin”上使用相同的代码时,简单地拒绝工作 检查一下,我在{. Net 4.8}vs{. Net Core 3.1}控制台、Winform上试过了 代码示例: