Я пытаюсь запустить собственный проект, в котором используются большие части проекта СиамМаск. Когда код запускается, один из многих импортов выглядит следующим образом:
from . import region
находится в файле __init__.py
. Он пытается импортировать файл .so с именем region.cpython-36m-x86_64-linux-gnu.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