gpt4 book ai didi

Python模块无法加载共享库,原因: image not found

转载 作者:行者123 更新时间:2023-12-01 08:59:50 26 4
gpt4 key购买 nike

我正在尝试使用应用程序附带的 Houdini Python 模块,该模块是 Houdini 安装文件夹的一部分,位于标准 Python 路径之外。按照安装说明操作后,运行 Houdini Terminal 16.5.571 脚本并添加 /Applications/Houdini/Houdini16.5.571/Frameworks/Houdini.framework/Versions/Current/Resources/houdini/python2 .7libs 到我的 site-packages 文件夹中的 _virtualenv_path_extensions.pth 可以导入 hou 模块,即 Python 部分。但是,它无法加载动态库。

错误消息

Traceback (most recent call last):

File "myscript.py", line 7, in <module>
import hou
File "/Applications/Houdini/Houdini16.5.571/Frameworks/Houdini.framework/Versions/Current/Resources/houdini/python2.7libs/hou.py", line 19, in <module>
import _hou
ImportError: dlopen(/Applications/Houdini/Houdini16.5.571/Frameworks/Houdini.framework/Versions/Current/Resources/houdini/python2.7libs/_hou.so, 2): Library not loaded: @rpath/Houdini.framework/Versions/16.5.571/Houdini
Referenced from: /Applications/Houdini/Houdini16.5.571/Frameworks/Houdini.framework/Versions/Current/Resources/houdini/python2.7libs/_hou.so
Reason: image not found

错误消息中提到的所有文件和文件夹都位于 Houdini 路径 /Applications/Houdini/Houdini16.5.571/Frameworks/Houdini.framework/Versions/Current 中,其中 Current code> 是 16.5.571 的符号链接(symbolic link)。

Python 模块

Resources/houdini/python2.7libs/hou.py

已找到 Python 模块。

共享库

Resources/houdini/python2.7libs/_hou.so`

这包含对 @rpath/Houdini.framework/Versions/16.5.571/Houdini 的引用,它可能正在尝试查找。

Houdini

这似乎链接到实际的dylib文件,包含@loader_path/Librariesdylib...@rpath/libHoudiniUI等。和许多其他人。

我在这里读到Cannot find dynamic library when running a Python script from Bazel SIP 可能是导致此问题的原因,但即使在 ln -s 将共享库放入 /usr/local/lib 后,错误仍然发生。

我正在使用 pyenv 但尝试使用系统 Python 环境,导致相同的行为。

有什么建议吗?

最佳答案

答案在 dyld: Library not loaded ... Reason: Image not loaded为我指明了正确的方向,建议使用 otool 重写动态库路径。

列出 _hou.so 加载的所有库,显示以下列表,其中 @rpath/Houdini.framework/Versions/16.5.571/Houdini 是导致问题。

otool -L /Applications/Houdini/Houdini16.5.571/Frameworks/Houdini.framework/Versions/Current/Resources/houdini/python2.7libs/_hou.so
/Applications/Houdini/Houdini16.5.571/Frameworks/Houdini.framework/Versions/Current/Resources/houdini/python2.7libs/_hou.so:
@rpath/Houdini.framework/Versions/16.5.571/Houdini (compatibility version 1.0.0, current version 16.5.255)
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1443.14.0)
/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.0.0)
/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 22.0.0)
/System/Library/Frameworks/QTKit.framework/Versions/A/QTKit (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox (compatibility version 1.0.0, current version 492.0.0)
/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 400.9.0)

可以使用install_name_tool -change重写路径。

install_name_tool -change @rpath/Houdini.framework/Versions/16.5.571/Houdini /Applications/Houdini/Houdini16.5.571/Frameworks/Houdini.framework/Versions/16.5.571/Houdini /Applications/Houdini/Houdini16.5.571/Frameworks/Houdini.framework/Versions/Current/Resources/houdini/python2.7libs/_hou.so

使用相对路径可能会更好。

关于Python模块无法加载共享库,原因: image not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52540606/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com