4

I would like to know how to install python libraries using yml file without making a new environment. I already have tensorflow environment in conda. I want to install list of libraries into this tensorflow environment. It is the only way I know manually add each of these libraries but it is very hard to do this list. Please give me solution for that

This is yml file:

name: virtual_platform
channels:
- menpo
- conda-forge
- peterjc123
- defaults
dependencies:
- ffmpeg=3.2.4=1
- freetype=2.7=vc14_1
- imageio=2.2.0=py35_0
- libtiff=4.0.6=vc14_7
- olefile=0.44=py35_0
- pillow=4.2.1=py35_0
- vc=14=0
- alabaster=0.7.10=py35_0
- astroid=1.5.3=py35_0
- babel=2.5.0=py35_0
- bleach=1.5.0=py35_0
- certifi=2016.2.28=py35_0
- cffi=1.10.0=py35_0
- chardet=3.0.4=py35_0
- colorama=0.3.9=py35_0
- decorator=4.1.2=py35_0
- docutils=0.14=py35_0
- entrypoints=0.2.3=py35_0
- html5lib=0.9999999=py35_0
- icu=57.1=vc14_0
- imagesize=0.7.1=py35_0
- ipykernel=4.6.1=py35_0
- ipython=6.1.0=py35_0
- ipython_genutils=0.2.0=py35_0
- isort=4.2.15=py35_0
- jedi=0.10.2=py35_2
- jinja2=2.9.6=py35_0
- jpeg=9b=vc14_0
- jsonschema=2.6.0=py35_0
- jupyter_client=5.1.0=py35_0
- jupyter_core=4.3.0=py35_0
- lazy-object-proxy=1.3.1=py35_0
- libpng=1.6.30=vc14_1
- markupsafe=1.0=py35_0
- mistune=0.7.4=py35_0
- mkl=2017.0.3=0
- nbconvert=5.2.1=py35_0
- nbformat=4.4.0=py35_0
- numpy=1.13.1=py35_0
- numpydoc=0.7.0=py35_0
- openssl=1.0.2l=vc14_0
- pandocfilters=1.4.2=py35_0
- path.py=10.3.1=py35_0
- pickleshare=0.7.4=py35_0
- pip=9.0.1=py35_1
- prompt_toolkit=1.0.15=py35_0
- psutil=5.2.2=py35_0
- pycodestyle=2.3.1=py35_0
- pycparser=2.18=py35_0
- pyflakes=1.6.0=py35_0
- pygments=2.2.0=py35_0
- pylint=1.7.2=py35_0
- pyqt=5.6.0=py35_2
- python=3.5.4=0
- python-dateutil=2.6.1=py35_0
- pytz=2017.2=py35_0
- pyzmq=16.0.2=py35_0
- qt=5.6.2=vc14_6
- qtawesome=0.4.4=py35_0
- qtconsole=4.3.1=py35_0
- qtpy=1.3.1=py35_0
- requests=2.14.2=py35_0
- rope=0.9.4=py35_1
- setuptools=36.4.0=py35_1
- simplegeneric=0.8.1=py35_1
- singledispatch=3.4.0.3=py35_0
- sip=4.18=py35_0
- six=1.10.0=py35_1
- snowballstemmer=1.2.1=py35_0
- sphinx=1.6.3=py35_0
- sphinxcontrib=1.0=py35_0
- sphinxcontrib-websupport=1.0.1=py35_0
- spyder=3.2.3=py35_0
- testpath=0.3.1=py35_0
- tornado=4.5.2=py35_0
- traitlets=4.3.2=py35_0
- vs2015_runtime=14.0.25420=0
- wcwidth=0.1.7=py35_0
- wheel=0.29.0=py35_0
- win_unicode_console=0.5=py35_0
- wincertstore=0.2=py35_0
- wrapt=1.10.11=py35_0
- zlib=1.2.11=vc14_0
- opencv3=3.1.0=py35_0
- pytorch=0.1.12=py35_0.1.12cu80
- torch==0.1.12
- torchvision==0.1.9
- pip:
  - ipython-genutils==0.2.0
  - jupyter-client==5.1.0
  - jupyter-core==4.3.0
  - prompt-toolkit==1.0.15
  - pyyaml==3.12
  - rope-py3k==0.9.4.post1
  - torch==0.1.12
  - torchvision==0.1.9
  - win-unicode-console==0.5
Ind
  • 377
  • 2
  • 6
  • 16
  • 2
    Possible duplicate of [How to update an existing Conda environment with a .yml file](https://stackoverflow.com/questions/42352841/how-to-update-an-existing-conda-environment-with-a-yml-file) – darthbith Feb 04 '19 at 16:07
  • did you try something like: `conda env create -f ~/CoqGym/coq_gym.yml`? – Charlie Parker Jan 04 '21 at 20:45

2 Answers2

13

You can use the conda env update command:

conda env update --name <your env name> -f <your file>.yml

or, if the environment you want to update is already activated, then

conda env update -f <your file>.yml
darthbith
  • 18,484
  • 9
  • 60
  • 76
  • Awesome. I missed this on my answer – Prayson W. Daniel Feb 02 '19 at 14:51
  • 2
    Yeah, the `conda env create` vs `conda create` vs `conda env update` vs `conda update` difference is a little confusing – darthbith Feb 02 '19 at 15:26
  • @darthbith what is the difference between the commands with an `env` before it vs the ones that don't? – Charlie Parker Jan 04 '21 at 20:41
  • 1
    if `conda env update -f .yml` is run from the activated environment, with the `.yml` file having a `name` tag, it will still create a new environment with that name and specified dependencies instead of updating the current one – Bn.F76 Mar 17 '21 at 23:46
2

If you want to create the environment from your yml file:

conda env create -f environment.yml

The name of your environment is virtual_platform. If you want another name, just edit your yml name to desired name.

It is not recommended to install packages to your base environment but if that is what you want, and I believe you should not, you need to create a requirement.txt from dependencies listed on your yml.

Copy and paste all the dependencies packages and there version to requirements.txt as:

python ==3.5
ffmpeg=3.2.4
freetype=2.7
imageio=2.2.0
...

Then do:

conda install --yes --file requirements.txt

The problem is that this will fail if any dependence fail to install. So I will recommend installing using yml which means having an environment separate from the rest.

Prayson W. Daniel
  • 14,191
  • 4
  • 51
  • 57
  • what is the difference between `conda env create` vs `conda create`? – Charlie Parker Jan 04 '21 at 20:43
  • `conda env create` building env from a file(yaml or text) while `conda create` is for direct shell see https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html – Prayson W. Daniel Jan 04 '21 at 22:07