如何在奇点容器中安装 python 包?

How do I install python packages inside of a singularity container?

我正在尝试在我的奇点容器上使用 pip 安装包,但如果不从我的机器上“借用”这些包,似乎没有办法这样做。我听说我可能需要使用 virtualenv,但即便如此,这似乎也是一个迂回的过程。有谁知道在他们的奇点容器上使用 pip 包的可靠方法吗?

您如何构建容器?您应该能够像在实际机器上安装一样在容器内使用 pip。

这是一个例子:

Bootstrap: docker
From: python:3.7-alpine

%post 
    pip install click 

将其保存为文件,如 test.def,然后构建容器:

sudo singularity build test.sif test.def

build a container 文档会有所帮助。

一个好的解决方法是使用 conda 安装所需的包。

BootStrap: docker
From: ubuntu:xenial

%environment
export PATH=/miniconda3/bin:$PATH

%runscript
exec vcontact "$@"

%post
apt-get update && apt-get install -y automake build-essential bzip2 wget git default-jre unzip

# Install miniconda 
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh -b -f -p /miniconda3/
rm Miniconda3-latest-Linux-x86_64.sh

# pull the conda functions in . /miniconda3/etc/profile.d/conda.sh and make pip, etc. available while in %post
export PATH="/miniconda3/bin:$PATH"

# Use conda to install pip, numpy
conda install -y -c conda-forge pip numpy 

# Help conda resolving Python "import" 
conda update --all