Python Virtual Environment: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 7: Line 7:
=Overview=
=Overview=
A virtual environment is a mechanism to isolate a set of installed dependencies. Virtual environments can be managed with tools like <code>[[virtualenv#Overview|virtualenv]]</code>, <code>[[Python Module venv|venv]]</code>, etc. and reside in directories called <code>venv</code> or <code>.venv</code> within the project's root. It is a good practice to avoid storing the content of <code>venv</code> or equivalent in source control. The content is populated locally on the developers' machines.
A virtual environment is a mechanism to isolate a set of installed dependencies. Virtual environments can be managed with tools like <code>[[virtualenv#Overview|virtualenv]]</code>, <code>[[Python Module venv|venv]]</code>, etc. and reside in directories called <code>venv</code> or <code>.venv</code> within the project's root. It is a good practice to avoid storing the content of <code>venv</code> or equivalent in source control. The content is populated locally on the developers' machines.
=Virtual Environment Contents=
A virtual environment contains a relatively large number of files (thousands).
<font color=darkkhaki>What exactly does it contain? Does it contain a fully independent Python interpreter copy?</font>


=Manual Creation=
=Manual Creation=

Revision as of 17:44, 2 May 2023

External

Internal

Overview

A virtual environment is a mechanism to isolate a set of installed dependencies. Virtual environments can be managed with tools like virtualenv, venv, etc. and reside in directories called venv or .venv within the project's root. It is a good practice to avoid storing the content of venv or equivalent in source control. The content is populated locally on the developers' machines.

Virtual Environment Contents

A virtual environment contains a relatively large number of files (thousands).

What exactly does it contain? Does it contain a fully independent Python interpreter copy?

Manual Creation

A virtual environment can be created manually as follows:

python3 -m venv <virtual-env-dir-name>

Example:

python3 -m venv venv

After the virtual environment is created, it is usually a good idea to upgrade pip:

venv/bin/python3 -m pip install --upgrade pip

The dependencies can then be installed with:

venv/bin/pip install -r requirements.txt

For more details on virtual environments and dependencies see Virtual Environments and Dependencies below.

Upgrade pip for an Already Initialized Virtual Environment

To upgrade pip within an already initialized virtual environment:

venv/bin/python3 -m pip install --upgrade pip

Virtual Environments and Dependencies

The dependencies can then be installed with:

venv/bin/pip install -r requirements.txt

TO TEST THAT: The dependencies installed in a virtual environment are used automatically if the interpreter is ./venv/bin/python.

Also see:

pip
requirements.txt

Bash Wrapper that Bootstraps a Virtual Environment

Calling Python from bash | bash Wrapper that Bootstraps a Virtual Environment

Activated Virtual Environment Shell

An "activated" virtual environment means making the virtual environment Python interpreter the default interpreter for the shell session.

To activate the virtual environment:

source .venv/bin/activate

To "deactivate", run:

deactivate

or simply exit the shell.