#python #singularity-container
#python #сингулярность-контейнер
Вопрос:
Я пытаюсь запустить свой образ Singularity на основе python3 на удаленном компьютере, но я получаю следующую ошибку, которую я не получаю с другими машинами:
singularity exec --nv --no-home --bind data/:/data/ image/ scripts/train.sh
singularity exec --nv --no-home --bind data/:/data/ image/ scripts/train.sh
WARNING: skipping mount of sysfs: no such file or directory
scripts/train.sh: line 8: warning: setlocale: LC_ALL: cannot change locale (en_US.utf8): No such file or directory
Python path configuration:
PYTHONHOME = (not set)
PYTHONPATH = '/usr/local/bin/python'
program name = '/usr/local/bin/python'
isolated = 0
environment = 1
user site = 1
import site = 1
sys._base_executable = '/usr/local/bin/python'
sys.base_prefix = '/usr/local'
sys.base_exec_prefix = '/usr/local'
sys.executable = '/usr/local/bin/python'
sys.prefix = '/usr/local'
sys.exec_prefix = '/usr/local'
sys.path = [
'/usr/local/bin/python',
'/usr/local/lib/python38.zip',
'/usr/local/lib/python3.8',
'/usr/local/lib/python3.8/lib-dynload',
]
Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
Python runtime state: core initialized
LookupError: no codec search functions registered: can't find encoding
Current thread 0x00007f628ee51740 (most recent call first):
<no Python frame>
Мой файл определения выглядит следующим образом:
Bootstrap: docker
From: python:3
%post
apt-get update -y
apt-get install -y git
pip install torch torchvision
git clone https://github.com/NVIDIA/apex
cd apex
pip install -v --no-cache-dir ./
%runscript
echo "Running nnunet container..."
Как я могу исправить эту ошибку?
Почему изображение не ведет себя одинаково на моих разных машинах?
Ответ №1:
Часто это происходит из-за того, что переменные среды передаются или не передаются в контейнер незаметно. Чтобы убедиться, что это не проблема, вы можете использовать -e
или --cleanenv
. Это предотвратит загрузку в контейнер любых переменных, не имеющих префикса SINGULARITYENV_
.
Тем не менее, предупреждение WARNING: skipping mount of sysfs: no such file or directory
также касается: singularity не удалось смонтировать /sys
в образ, потому что он не существует на хост-сервере. Эта конкретная ошибка python также, по-видимому, характерна для Windows 10. Singularity в настоящее время не поддерживает Windows, даже с волшебством WSL2.
Комментарии:
1. Я пробовал с
--cleanenv
опцией, но у меня все еще та же проблема :/. Примечание: хост-системой является Debian GNU / Linux 8 (jessie) , а не Windows.2. упс, может быть, это связано с тем, что моя песочница с изображениями неполная (возможно, была проблема, когда я ее загружал).