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



我正在尝试运行一个使用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 相关的东西没有直接的"执行"权限。(对此我没有什么可以改变的)这也是为什么我正在处理的 Python 虚拟环境位于不同的驱动器上的原因(系统对与 Python 相关的所有内容具有直接执行权限)。

但是,我的问题是,如何以不会干扰上述事实的不同方式导入此.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 存储库的磁盘设置的标志。

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

最新更新