我建立了一个包含最新anaconda版本的奇点图像(jupyter.sif),我想用它来运行一个jupyter笔记本。
我想运行这样的事情:
#####
singularity exec --bind /path/outside/image/:/path/inside/image/ jupyter.sif jupyter notebook --notebook-dir=/path/to/dir --no-browser --ip=127.0.0.1
#####
本质上,只需启动一个普通的jupyter笔记本,它将使用python版本和安装在奇点映像中的软件包。理想情况下,笔记本计算机将在图像之外读写文件(因此,为什么要指定绑定路径)。
但是,当我运行上述命令时,出现以下错误:
#####
追溯(最近一次通话最近):文件“ /opt/conda/lib/python3.7/site-packages/traitlets/traitlets.py”,第528行,获取值= obj._trait_values [self.name] KeyError:' runtime_dir'
在处理上述异常期间,发生了另一个异常:
追溯(最近一次通话):
sys.exit(main())中的文件“ / opt / conda / bin / jupyter-notebook”,第11行
在launch_instance中的文件“ /opt/conda/lib/python3.7/site-packages/jupyter_core/application.py”第266行中返回super(JupyterApp,cls).launch_instance(argv = argv,** kwargs)
在launch_instance app.initialize(argv)中的文件“ /opt/conda/lib/python3.7/site-packages/traitlets/config/application.py”,行657
文件“”,第2行,初始化
在catch_config_error返回方法(应用程序,* args,** kwargs)的第87行中,文件“ /opt/conda/lib/python3.7/site-packages/traitlets/config/application.py”
初始化self.init_configurables()中的文件“ /opt/conda/lib/python3.7/site-packages/notebook/notebookapp.py”,行1626
在init_configurables connection_dir = self.runtime_dir中的文件“ /opt/conda/lib/python3.7/site-packages/notebook/notebookapp.py”中,第1319行,
在获取返回self.get(obj,cls)的第556行中,文件“ /opt/conda/lib/python3.7/site-packages/traitlets/traitlets.py”
文件“ /opt/conda/lib/python3.7/site-packages/traitlets/traitlets.py”,第535行,获取值= self._validate(obj,dynamic_default())
_runtime_dir_default中的文件“ /opt/conda/lib/python3.7/site-packages/jupyter_core/application.py”,第99行保证_dir_exists(rd,mode = 0o700)
确保文件“ /opt/conda/lib/python3.7/site-packages/jupyter_core/utils/ init .py”,第13行,在sure_dir_exists os.makedirs(路径,模式=模式)中
在makedirs makedirs(head,exist_ok = exist_ok)中的第211行的文件“ /opt/conda/lib/python3.7/os.py”
在makedirs makedirs(head,exist_ok = exist_ok)中的第211行的文件“ /opt/conda/lib/python3.7/os.py”
文件``/opt/conda/lib/python3.7/os.py'',行221,在makedirs mkdir(name,mode)中
OSError:[Errno 30]只读文件系统:'/ run / user'
#####
我认为这是因为笔记本正在尝试在图像中写入内容,并且因为我不以sudo的身份运行图像(我不想这样做),而且在执行图像时我也未指定--writable(也不想这样做),它抱怨无法在图像中写入。
有没有一种“告诉”映像在我的主目录中而不是映像中读写文件的方法?
谢谢
我只是遇到了同样的问题,这似乎已经为我解决了:将容器中的/ run / user映射到外部的工作目录(或您选择的目录)。对于您的情况,可能意味着:
singularity exec --bind /path/outside/image/:/path/inside/image/ --bind $PWD:/run/user jupyter.sif jupyter notebook --notebook-dir=/path/to/dir --no-browser --ip=127.0.0.1
以这种方式运行时,在我的情况下1000
,创建了一个文件夹
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句