Uploaded by abser

conda create environment and everything you need to know to manage conda virtual environment - machine learning plus

advertisement
Anaconda
“ˆ
Conda
“ˆ
Virtual
Environment
Conda create environment and everything
you need to know to manage conda virtual
environment


February 10,
by Selva
2022
Prabhakaran
Typical python projects uses multiple packages for various tasks. And some of the packages
are shared between projects as well.
Sharing same packages between projects can cause problems.
How?
When you update one of the packages used in a project, it might cause compatibility issues in
the other packages that use it. On upgrading, it can also cause dependency issues. That is,
dependent packages that are use the code of the upgraded package can break.
This issue is effectively handled by using virtual environments.
Some of the popular virtual environment implementations for Python are:
1. Virtualenv
2. Conda
3. pipenv
4. venv
Several others exist.
However the most popular ones are Conda, Pipenv and venv as well. Specifically, Conda is
popular amongst Data Scientists whereas pipenv is popular amongst software engineers.
Conda is a package manager and a virtual environment and it provides the convenience of
allowing you to manage what version of Python the virtual environment (and as a result your
project) uses as well. So naturally, conda is very convenient and I use it my projects as well.
Install Conda
You can install conda via anaconda or miniconda
Source: LinuxnetMag
How to use conda environment?
Well, you need to know a few commands to create and activate the environment and effortlessly
install and uninstall package versions you want to use.
Let’s look at them.
But before you start make sure you’ve installed Anaconda. If you use windows, in ‘Start’ you
need to type and start the ‘Anaconda prompt’. If you are on Mac or Linux, you can do all of
these in Terminal.
1. Create conda environment
Conda centrally manages the environments you create, so, you don’t have to bother about
creating a folder for specific environments yourself. You can either start by creating an empty
environment or mention the python version and packages you need at the time of creation itself.
(i) Create an empty environment
conda create ‐‐name {env_name}
conda create ‐‐name mlenv
(ii) Create an environment + specific python version
conda create ‐‐name {env_name} {python==3.7.5}
conda create ‐‐name mlenv python==3.7.5
This will also install packages like
pip , wheel ,
setuptools . You can then activate the
environment (see below) and
(iii) Create an environment + specific Python version + packages
conda create ‐‐name env_name python==3.7.5 package_name1 package_name2
Example:
conda create ‐‐name mlenv python==3.7.5 pandas numpy
2. Activate the environment
conda activate {env_name}
To deactivate whichever you are currently in, use:
conda deactivate
3. Install more packages
Once activated you can install more packages using either
conda
or with
pip .
With Conda
conda install pkg_name1==1.x.y pkg_name2==1.x.y
With pip
pip install pkg_name2==1.x.y pkg_name2==1.x.y
or install multiple packages from
requirements.txt .
pip install ‐r requirements.txt
However, I don’t recommend using
pip inside conda environment, especially when you want
to another person to be able to replicate your environment and run the programs. See the
“Sharing environments across platforms” section below if you want to know the exact reason.
4. See the list of packages and environments
(i) Show list of packages in current environment
conda list
(ii) See list of packages in specific environment
conda list ‐n myenv
(iii) See list of environments
conda env list
# or
conda info ‐‐envs
Sample Ouptut:
# conda environments:
C:\Users\selva\.julia\conda\3
base * C:\Users\selva\AppData\Local\Continuum\anaconda3
envmnt C:\Users\selva\AppData\Local\Continuum\anaconda3\envs\envmnt
juliaenv C:\Users\selva\AppData\Local\Continuum\anaconda3\envs\juliaenv
mlcourse C:\Users\selva\AppData\Local\Continuum\anaconda3\envs\mlcourse
The current active environment will be marked with star
(*) .
5. Remove an environment
After making sure you are not in the environment:
conda env remove ‐n env_name
6. Build an identical environment.
To create an environment that is identical to an existing one, explicitly create a spec file of the
environment you want to duplicate and use it at the time of creating the new env.
Step 1: Create spec file
conda list ‐‐explicit > spec‐file.txt
Step 2:
conda create ‐‐name myenv ‐‐file spec‐file.txt
You can do this in the same machine or a different machine as well, if you have the spec list.
If you want to install the packages in spec file, in an existing environment, run this.
conda install ‐‐name env_name ‐‐file spec‐file.txt
7. Sharing environments across platforms (better
way)
There is a common problem when you try to replicate your environment in another system /
platform.
When you create an environment and packages, lets say you run something like this (insert your
package names).
conda install python=3.7 pkg_name1 pkg_name2 pkg_name3
This downloads and installs numerous other dependent packages in order to make the
packages you wanted to install work.
This can easily introduce packages that may not be compatible across platforms.
So instead, use this:
conda env export ‐‐from‐history > environment.yml
Adding ‐‐from‐history flag will install only the packages you asked for using conda. It will
NOT include the dependency packages or packages you installed using any other method.
Now, How to re-create the environment?
Pass the
environment.yml and the other person can re-create your environment by running:
conda env create ‐f environment.yml
Important Note:
If you had installed other packages via `pip install` or other methods, those will not be exported to
the environment file as well. So as a best practice, in order to share packages to other platforms,
use conda to install packages (`conda install pkg_name`).
8. Restore / Rollback to an earlier version of an
environment
Conda maintains a history of changes you make to an environment, by changes, I mean the
changes you made using the conda commands. It allows you to roll back changes by using
revision numbers.
Upon activating an environment, first see the revisions and the revision numbers using this.
conda list ‐‐revisions
Then, roll back
conda install ‐‐rev 3
Download