欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

模块编译成功,但 python 运行时找不到依赖项 名称为'的模块

最编程 2024-10-19 07:12:05
...

解决方案步骤:

1. 确认生成文件的位置

CMake 生成的文件通常位于 build 目录中。你可以使用以下命令在项目目录中查找生成的 .so 文件:

find /data/yhy/PSSNet/step-2/partition/segment_parsing_spg/build -name "libpython_parsing.so"

这个命令将递归查找 build 目录中的所有 .so 文件。确认文件是否生成,并输出路径。

2. 查找整个项目目录

如果上述方法找不到文件,可能生成的文件被放置在项目目录的其他地方。你可以在整个 PSSNet 项目目录中查找文件:

find /data/yhy/PSSNet/ -name "libpython_parsing.so"
3. 确认输出路径

如果找到文件后,确保其路径是正确的,并且将生成的 .so 文件移动到你需要的地方,或者将 CMake 配置为在指定的目录中生成库文件。

mv /data/yhy/PSSNet/step-2/partition/segment_parsing_spg/build/python_parsing/src/libpython_parsing.so /data/yhy/anaconda3/envs/PSSNet/lib

4. 将生成的目录添加到 PYTHONPATH

如果你不想移动文件,你可以将 .so 文件所在的目录临时添加到 PYTHONPATH 环境变量中,使 Python 能够找到该文件。

执行以下命令将 .so 文件所在的路径添加到 PYTHONPATH 中:

export PYTHONPATH=/data/yhy/PSSNet/step-2/partition/segment_parsing_spg/build/python_parsing/src:$PYTHONPATH

 检查 LD_LIBRARY_PATH

确保系统正确加载了 .so 文件。你需要检查并设置 LD_LIBRARY_PATH 环境变量,将 .so 文件所在的路径添加到其中。

你可以执行以下命令临时设置 LD_LIBRARY_PATH

 

export LD_LIBRARY_PATH=/data/yhy/anaconda3/envs/PSSNet/lib:$LD_LIBRARY_PATH

  然后重新运行Python 脚本。如果不行,

2. 添加 Python 模块路径到 PYTHONPATH

如果 Python 仍然无法找到模块,你还需要确保 PYTHONPATH 包含 .so 文件的目录。你可以这样设置:

export PYTHONPATH=/data/yhy/anaconda3/envs/PSSNet/lib:$PYTHONPATH

  然后重新运行Python 脚本。如果不行,

使用 sys.path 在代码中添加路径

你也可以在代码中通过 sys.path 动态添加 .so 文件所在的路径。在你的 Python 脚本中,导入模块之前,添加以下代码:

import sys
sys.path.append('/data/yhy/PSSNet/step-2/partition/segment_parsing_spg/build/python_parsing/src')

 然后重新运行Python 脚本

推荐阅读