我正在尝试运行一个使用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 存储库的磁盘设置的标志。
删除标志并重新安装磁盘后,错误消失了