Roughly speaking, the python executable /some_dir/lib/pythonX.Y/bin/python
and the package installation location /some_dir/lib/pythonX.Y/site-packages/
consitute what is commonly referred to as the python environment.
If you cannot install different versions of a package in a single environment,
let’s have multiple environments! This is the core idea of python virtual environments.
Whenever a python virtual environment my_env
is activated, the python
command points to a
python executable that is unique to this environment (my-env/lib/pythonX.Y/bin/python
), with a unique package installation location
specific to this environment (my_env/lib/pythonX.Y/site-packages
).
Move to the analysis1/
directory and create a virtual environment there:
cd python-packaging-workshop/analysis1/
python -m venv venv-analysis1
This commands creates a new directory venv-analysis1
in the current directory.
Feel free to explore its contents.
Activate the virtual envoronment for analysis1
source venv-analysis1/bin/activate # GNU/Linux and MacOS
venv-analysis1\Scripts\activate.bat # Windows command prompt
venv-analysis1\Scripts\Activate.ps1 # Windows PowerShell
What is the location of the current python executable?
Hint: The built-in python package sys
provides a variable executable
.
Use pip list
to list the currently installed packages.
Note that your package and its dependencies have disappeared, and only
the core python packages are installed. We effectively have a “fresh” python environment.
Update pip
and install utility packages
pip install --upgrade pip setuptools wheel
Move to the the tstools-dist
distribution package directory and install it into the
current environment:
pip install .
Where was the package installed?
Hint: When importing package package
in python, use package.__file__
to check the location of the corresponding __init__.py
file.
The above exercise demonstrates that, after activating the venv-analysis1
, the command python
executes the python executable analysis1/venv-analysis1/bin/python
, and python packages are installed
in the analysis1/venv-analysis1/lib/pythonX.Y/site-packages
directory.
This means that we are now working in a python environment that is isolated from other python environments
in your machine:
You can therefore install all the packages necessery to your projects, without worry of breaking other projects.