question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Conda env does not activate at start even if activate=true

See original GitHub issue

I’m unable to get my conda env to activate by default with --miniconda activate=True and need to manually enter source activate neuro upon starting the singularity container with singularity shell . I’d like to run the container from a bash/slurm script and it will not allow me to activate the env.

@satra was helping to look into this and this does work on a docker image based on ubuntu

Apparently the line sed -i '$isource activate neuro' $ND_ENTRYPOINT is not executing

Neurodocker command: singularity run neurodocker.simg generate singularity --base centos:7 --pkg-manager yum --user neuro --miniconda create_env=neuro activate=True conda_install="numpy pandas scipy scikit-learn matplotlib seaborn networkx ipython joblib nibabel datalad jupyter numba" pip_install="nibabel ply neurosynth nilearn pliers kmapper dyneusr pyns umap-learn librosa pydra tensorflow pysoundfile resampy" --install emacs vim --run "python -m pip install git+https://github.com/nipype/pydra-ml.git" > Singularity

Build Spec:

# Generated by: Neurodocker version 0.7.0+0.gdc97516.dirty
# Latest release: Neurodocker version 0.7.0
# Timestamp: 2020/05/22 20:04:12 UTC
# 
# Thank you for using Neurodocker. If you discover any issues
# or ways to improve this software, please submit an issue or
# pull request on our GitHub repository:
# 
#     https://github.com/ReproNim/neurodocker

Bootstrap: docker
From: centos:7

%post
su - root

export ND_ENTRYPOINT="/neurodocker/startup.sh"
yum install -y -q \
    bzip2 \
    ca-certificates \
    curl \
    localedef \
    unzip
yum clean packages
rm -rf /var/cache/yum/*
localedef -i en_US -f UTF-8 en_US.UTF-8
chmod 777 /opt && chmod a+s /opt
mkdir -p /neurodocker
if [ ! -f "$ND_ENTRYPOINT" ]; then
  echo '#!/usr/bin/env bash' >> "$ND_ENTRYPOINT"
  echo 'set -e' >> "$ND_ENTRYPOINT"
  echo 'export USER="${USER:=`whoami`}"' >> "$ND_ENTRYPOINT"
  echo 'if [ -n "$1" ]; then "$@"; else /usr/bin/env bash; fi' >> "$ND_ENTRYPOINT";
fi
chmod -R 777 /neurodocker && chmod a+s /neurodocker

test "$(getent passwd neuro)" || useradd --no-user-group --create-home --shell /bin/bash neuro
su - neuro

export PATH="/opt/miniconda-latest/bin:$PATH"
echo "Downloading Miniconda installer ..."
conda_installer="/tmp/miniconda.sh"
curl -fsSL --retry 5 -o "$conda_installer" https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash "$conda_installer" -b -p /opt/miniconda-latest
rm -f "$conda_installer"
conda update -yq -nbase conda
conda config --system --prepend channels conda-forge
conda config --system --set auto_update_conda false
conda config --system --set show_channel_urls true
sync && conda clean -y --all && sync
conda create -y -q --name neuro
conda install -y -q --name neuro \
    "numpy" \
    "pandas" \
    "scipy" \
    "scikit-learn" \
    "matplotlib" \
    "seaborn" \
    "networkx" \
    "ipython" \
    "joblib" \
    "nibabel" \
    "datalad" \
    "jupyter" \
    "numba"
sync && conda clean -y --all && sync
bash -c "source activate neuro
  pip install --no-cache-dir  \
      "nibabel" \
      "ply" \
      "neurosynth" \
      "nilearn" \
      "pliers" \
      "kmapper" \
      "dyneusr" \
      "pyns" \
      "umap-learn" \
      "librosa" \
      "pydra" \
      "tensorflow" \
      "pysoundfile" \
      "resampy""
rm -rf ~/.cache/pip/*
sync
sed -i '$isource activate neuro' $ND_ENTRYPOINT


yum install -y None \
    emacs \
    vim
yum clean packages
rm -rf /var/cache/yum/*

python -m pip install git+https://github.com/nipype/pydra-ml.git

echo '{
\n  "pkg_manager": "yum",
\n  "instructions": [
\n    [
\n      "base",
\n      "centos:7"
\n    ],
\n    [
\n      "user",
\n      "root"
\n    ],
\n    [
\n      "_header",
\n      {
\n        "version": "generic",
\n        "method": "custom"
\n      }
\n    ],
\n    [
\n      "user",
\n      "neuro"
\n    ],
\n    [
\n      "miniconda",
\n      {
\n        "create_env": "neuro",
\n        "activate": true,
\n        "conda_install": [
\n          "numpy",
\n          "pandas",
\n          "scipy",
\n          "scikit-learn",
\n          "matplotlib",
\n          "seaborn",
\n          "networkx",
\n          "ipython",
\n          "joblib",
\n          "nibabel",
\n          "datalad",
\n          "jupyter",
\n          "numba"
\n        ],
\n        "pip_install": [
\n          "nibabel",
\n          "ply",
\n          "neurosynth",
\n          "nilearn",
\n          "pliers",
\n          "kmapper",
\n          "dyneusr",
\n          "pyns",
\n          "umap-learn",
\n          "librosa",
\n          "pydra",
\n          "tensorflow",
\n          "pysoundfile",
\n          "resampy"
\n        ]
\n      }
\n    ],
\n    [
\n      "install",
\n      [
\n        "emacs",
\n        "vim"
\n      ]
\n    ],
\n    [
\n      "run",
\n      "python -m pip install git+https://github.com/nipype/pydra-ml.git"
\n    ]
\n  ]
\n}' > /neurodocker/neurodocker_specs.json

%environment
export LANG="en_US.UTF-8"
export LC_ALL="en_US.UTF-8"
export ND_ENTRYPOINT="/neurodocker/startup.sh"
export CONDA_DIR="/opt/miniconda-latest"
export PATH="/opt/miniconda-latest/bin:$PATH"

%runscript
/neurodocker/startup.sh "$@"

Issue Analytics

  • State:open
  • Created 3 years ago
  • Comments:7 (5 by maintainers)

github_iconTop GitHub Comments

1reaction
kaczmarjcommented, Nov 16, 2020

@djarecka - i don’t think so. i do not have time right now to work on this.

0reactions
djareckacommented, Nov 17, 2020

@kaczmarj - thanks, I’ll give a try

Read more comments on GitHub >

github_iconTop Results From Across the Web

I can not activate virtual environment in conda - Stack Overflow
When I run it with this path I get VENV_PROMPT "kind of environment" but when I check libraries with pip list it returns...
Read more >
terminal not activating the conda environment : PY-23417
If activate.bat is missing or empty - I just get plain cmd prompt, with no environment activated. The conda is even not on...
Read more >
Efficient Way to Activate Conda in VSCode - Medium
So my import numpy would still fail when I ran “Start Debugging” in this environment for the first time (i.e., without a prior...
Read more >
Conda environments
If you change one environment, your other environments are not affected. You can easily activate or deactivate environments, which is how you switch...
Read more >
How do I activate a conda environment in my .bashrc?
It looks like the accepted answers might be out of date. From the docs: If your shell is Bash or a Bourne variant,...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found