Skip to content

How to Set Up a Virtual Environment in Python

A Python virtual environment is a self-contained directory that contains its own Python interpreter and a set of libraries and packages. This environment is isolated from the global Python environment on your system, allowing you to manage project-specific dependencies without affecting other projects or the system-wide Python installation.

The primary purpose of a virtual environment is to create an isolated environment for a specific Python project, ensuring that the project's dependencies are consistent and do not interfere with other projects or the system.

venv is a built-in module in Python that provides support for creating lightweight, isolated Python environments.

  • venv is a standard Python module for creating virtual environments.
  • pyenv is a separate tool for managing multiple Python versions.
  • pyenv-virtualenv is a plugin for pyenv that extends its functionality to include virtual environment management.

The most commonly used tools for creating virtual environments in Python are venv (built into Python 3.3 and later) and virtualenv (a third-party package). These tools allow you to:

  • Description:

    venv is a built-in module in Python 3.3 and later, and it's used for creating lightweight, isolated Python environments. If you're using Python 3.3 or later, venv is a good choice for managing virtual environments.

  • Strengths:

    • Simplicity and ease of use.
    • Built into the Python standard library.
    • Ideal for basic use cases and projects with straightforward requirements.
  • Commands:

    bash
    # Create a virtual environment
    python -m venv venv
    
    # OR:: Replace "myenv" with your preferred environment name
    # To Create Specific python version
    python3.8 -m venv myenv
    
    # Activate the virtual environment
    
    # On Windows
    .\myenv\Scripts\activate
    
    # On Unix or MacOS
    source myenv/bin/activate
    

    Replace 3.8 with the desired Python version. The -m venv command uses the venv module to create the virtual environment. This will create a virtual environment with the specified Python version.

  • Description

    virtualenv is a third-party Python package that provides tools for creating isolated Python environments. It allows you to create multiple virtual environments on a single system, each with its own Python interpreter and set of installed packages.

    virtualenv is not included in the Python standard library, so you need to install it separately using pip.

  • Strength

    • Compatible with both Python 2 and Python 3, providing flexibility for projects on different Python versions.
    • Allows customization during virtual environment creation, such as specifying the Python interpreter version and additional options.
    • Offers high-level isolation, allowing for independent Python environments for different projects.
  • Commands

    bash
    # Install virtualenv if not already installed
    pip install virtualenv
    
    # Replace "myenv" with your preferred environment name
    virtualenv myenv
    
    # OR:: Replace "myenv" with your preferred environment name
    virtualenv --python=python3.8 myenv
    
    # Activate the virtual environment
    
    # On Windows
    .\myenv\Scripts\activate
    
    # On Unix or MacOS
    source myenv/bin/activate
    

    Replace 3.8 with the desired Python version. The --python option allows you to specify the Python interpreter for the virtual environment.

  • Description:

    Conda is a cross-platform package manager and environment manager that can install, run, and update packages and their dependencies. It is not Python-specific and can manage environments for multiple programming languages.

  • Strengths

    • Cross-language support (not limited to Python).
    • Manages both Python packages and non-Python packages.
    • Handles complex dependencies and environments effectively.
  • Commands

    bash
    # Create a conda environment
    conda create --name myenv
    
    # OR::
    conda create --name my_env python=3.8
    
    # Activate the conda environment
    conda activate myenv
    
    # Deactivate the conda environment
    conda deactivate
    

    Conda can be particularly useful when working on projects with dependencies that extend beyond Python, or when you need to manage environments with specific versions of non-Python libraries.


Notes

Choose the approach that fits your preferences and requirements. Keep in mind that venv is included in the Python standard library, while virtualenv is a separate package that needs to be installed. If you're using a specific Python version, it's crucial to ensure that version is installed on your system before creating the virtual environment.


Reference