由于缺少权限而无法导入 .so 文件:无法从共享对象映射段

Can't import .so file due to permissions missing: failed to map segment from shared object

我正在尝试 运行 一个自定义项目,该项目使用了 SiamMask 项目的大部分内容。当代码为 运行 时,许多导入之一是这个:

from . import region

位于 __init__.py 文件中。它正在尝试导入一个名为 region.cpython-36m-x86_64-linux-gnu.so 的 .so 文件,该文件与 __init__.py 文件位于同一目录中。

但是,当我 运行 代码时,出现以下错误:

ImportError: /scratch/[hidden]/project/libs/siamMask/utils/pyvotkit/region.cpython-36m-x86_64-linux-gnu.so: failed to map segment from shared object: Operation not permitted

我很确定这个错误是由以下事实引起的。我正在处理的暂存盘安装在 GPU 服务器上,没有对 Python 相关内容的直接 'execute' 权限。 (对此我无能为力)这也是我正在处理的 Python 虚拟环境位于不同驱动器上的原因(系统对 [=30= 的所有内容具有直接执行权限) ]相关)。

但是我的问题是,如何以不影响上述事实的不同方式导入此 .so 文件?我可以 运行 将文件转移到另一个驱动器并通过 __init__ 文件以某种方式从那里导入它吗?

提前致谢!

我能够通过以下方式解决此问题:

我将 region.cpython-36m-x86_64-linux-gnu.so 文件移动到另一个可以执行 Python 的驱动器。然后我在 __init__ 文件中使用了以下代码:

import sys

sys.path.append('/path/to/.sofile')

import region

就我而言,我在单独的磁盘上有一个虚拟环境,拒绝访问的原因是 user/etc/fstab 中的 git 存储库设置了标志。

删除标志并重新安装磁盘后,错误消失了