conda doesn't install latest version of snakemake I would like to use the --default-resources parameter for profiles which is available in later versions of snakemake.

To install snakemake, I created a new conda environment:

conda create -n snakemake -c conda-forge -c bioconda snakemake

The currently installed version is listed as 5.14:

$ conda activate snakemake
(snakemake)$ conda list | grep snakemake
# packages in environment at /home/uvi/be/hde/.conda/envs/snakemake:
snakemake                 5.14.0                        0    bioconda
snakemake-minimal         5.14.0                     py_1    bioconda


However, command line tool says it is on version 5.1.4:

(snakemake)$ snakemake --version
5.1.4


This version does not know the new parameter --default-resources yet. So it gives an error when using it


  snakemake: error: unrecognized arguments: --default-resources partition = "thin-shared"


I already checked that I'm running the executable from inside the environment, rather than a different, external one:

(snakemake)$ which snakemake
~/.conda/envs/snakemake/bin/snakemake
(snakemake)$ $(which snakemake) --version
5.1.4
Python (whether installed with conda or not) will prefer packages installed in your home directory unless you tell it not to. This is a little known secret about using a virtualenv, actually, since internally those tell python to ignore everything in your home directory. Within conda, there's long been a debate about whether python (and also R) should continue looking for packages in the normal places or only within a conda environment. Since it would likely break many people's workflows, it's been decided to allow the normal language features of looking for packages not just within conda envs but also in the normal system and user locations. For python in particular you can disable this as follows:

PYTHONNOUSERSITE=True snakemake ...


Then only the packages installed within your conda environment will be used.