Virtual Environments with Python

From Littledamien Wiki
Revision as of 00:01, 20 March 2020 by Video8 (talk | contribs) (→‎Creating virtual environments on Mac)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Overview

Mac OS X Yosemite comes with Python 2.7 installed.

After installing Python 3.4, the python command still invokes Python 2.x. To use Python 3 use the python3 command instead.

Similarly, the pip command invokes pip that was installed with Python 2.x. So, pip install [package_name] will install for Python 2.x and leave Python 3.x unchanged. pip3 can be used to update Python 3.x on the command line. (pip3 is installed as part of the Python 3.x package.)

Creating virtual environments on Mac

Using python3

Per the Python 3.8.x documentation, a virtual environment can be created with: [1]

$ python3 -m venv /path/to/new/environment/

venv is the command that is run with python to create the virtual environment.

Using virtualenv

First, install virtualenv if it is not already installed: pip(3) install virtualenv. A new terminal shell is required to have the virtualenv command available.[2]

$ virtualenv -p /Library/Frameworks/Python.framework/Versions/3.4/bin/python3 venv
$ source venv/bin/activate
$ pip install package-name

Activating a virtual environment

An existing virtual environment is activated with:

$ source ~/venv/bin/activate

On Windows: .\venv\scripts\activate

To exit the virtualenv enter deactivate at the command prompt. This routine is defined within the virtualenv activate script.

To find the path to Python 3.x:

$ which python3

N.B. Packages will probably have to be installed for new virtual environments, e.g. django, etc.

Using a virtual environment in PyCharm

  • PyCharm > Preferences > Project: '[CURRENT_PROJECT]' > Project Interpreter
    • Click the gear icon to the right of Project Interpreter:
      • Choose Add Local for existing virtualenv, or Create VirtualEnv for a new one
      • Select the virtualenv, and apply the changes.[3]

Deactivating a virtual environment

$ deactivate

Updating the python version for an existing virtual environment

First, deactivate the virtual environment if it is running. [4]

$ virtualenv --clear -p /path/to/my/python3.6 ./venv

Confirm the python version used by the virtual environment with:

$ ls -la ./venv/bin/python

Notes

See also

References