从 Singularity 容器访问主机 Python 虚拟环境

kos*_*mos 5 virtualenv jupyter singularity-container

我有一个 Singularity 容器,其中安装了许多工具以及 Python 和 Jupyter。但我想在使用 Singularity 中的其他工具时访问我为 python 创建的外部虚拟环境。原因是我正在尝试不同的 python 包,如果没有“sudo”权限,这些包无法安装到 Singularity 容器中。由于 sudo 权限,我无法在主机上安装其他工具。

我能够激活虚拟环境,但无法使用它:当我运行 pip 命令或 Jupyter lab 时出现此错误。

bash: /home/username/virtual-env/bin/pip: /home/username/virtual-env/bin/python: bad interpreter: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我想从从 Singularity 容器运行的虚拟环境运行 Jupyter 实验室。

qwe*_*rty 1

我已经成功地在激活容器时将主机中的某些 bin 目录安装到 Singularity 容器中的目录上,从而可以从容器内进行访问。

示例:/data从主机挂载到/mntinmy_container

$ singularity shell --bind /data:/mnt my_container.sif
Run Code Online (Sandbox Code Playgroud)

资料来源:奇点文档

幸运的是,主机上的 bin 自动映射到管理员配置的某些 Singularity 容器挂载点。

因此,如果您的管理员不允许您绑定路径,一种解决方法可能是在主机上自动绑定的目录(即 、 、 、 、 )中创建符号链接(指向您$HOME需要/tmp/procbin /sys/dev