Working with Virtual Environments
Python has a feature called virtual environments that let you set up isolated Python environments for different projects. This allows you to install the libraries that you need for one project without messing up others.
In general, you can use one virtual environment for everything in this class. However, if you'd like to separate things out for some reason, you can use multiple environments.
Creating Virtual Environments
Since Python 3.4, Python has included a virtual environment tool called
pyvenv in the base Python distribution. This is automatically installed when you install Python on Windows or Mac, and the Linux instructions I provided will also result in installing it.
PyCharm can directly create a virtual environment. To do this, when you are selecting or configuring your Project Interpreter, select ‘Create Virtualenv’ from the gear dropdown. It will prompt you for a base interpreter (this should be your Python 3.4 installation) and a name & location for the virtual environment.
After you complete this form, PyCharm will automatically create a virtual environment (and, if you do this while creating a Flask application, install Flask).
After creating the virtual environment, you can go to the Project Interpreter settings and install packages by clicking the ‘+’ button at the bottom of the list of packages. You can then search for and install Flask, Flask-Script, and other packages from the Python Package Index.
Using the Command Line
Some of the department computers do not have it, in which case you can use the older
virtualenv tool. Just replace
virtualenv -p /usr/bin/python3.4.
To create a virtual environment, run the following command in the terminal on Unix:
$ pyvenv /path/to/my/venv
You might need to use
pyvenv-3.5 instead of just
/path/to/my/venv with the path to where you want your virtual enviroment installed, such as
pyvenv is not in the path by default. It is located in
C:\Python34\Tools\Scripts. We can run it with its full path as follows:
C:\Users\michael> python C:\Python34\Tools\Scripts\pyvenv.py cs3320-env
Since we are running this command in
C:\Users\michael, it will create the virtual environment at
Python 3.5 installs to a different location on Windows, under your user profile's
This will create a virtual environment at the specified location. It will also install
pip, a Python package manager, into the environment, and arrange for the
python executable to be the specified version of Python.
Using the Virtual Environment in PyCharm
You can add the virtual environment just like any other Python installation in PyCharm when you configure your Project Interpreter (when you create the project, or after the fact in File -> Settings).
If your virtual environment doesn't appear in the list, click the browse button and browse to the
bin/python executable (on Unix) or
python.exe (on Windows) file that it contains. PyCharm will automatically scan it for packages and make it available.
Using the Virtual Environment at the Command Prompt
If you want to use Python from the command prompt, you first need to activate the virtual environment. This needs to be done each time you open a terminal to use the environment (activation adds the virtual environment to the current terminal session).
On OS X and Linux, assuming you are using the default
bash shell, you can run the following to activate:
If you are using PowerShell on Windows, run:
If PowerShell says that the policy does not allow the script to be run, change the execution policy to
RemoteSigned by running the following:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
In the legacy command prompt, you can use the
activate.bat file and it will function just like
Once you have activated the virtual environment, your
pip commands will run the isolated Python.
Python libraries, such as Flask, can be installed with the
pip tool. All the libraries we use are Pip-installable.
To install the basic libraries we need for all of our projects, run the following in a terminal where you have activated your virtual environment:
pip install Flask Flask-Script
Flask is the main Flask toolkit, and Flask-Script is the library that makes our
manage.py files work (see Assignment 0).
You can also install packages from within PyCharm. Go to the ‘Project Interpeter’ settings, and click the ‘+’ button at the bottom of the package list.