How to set up a Python project and manage its dependencies.
Step 0 - Install Python's Package Manager Globally
python -m pip install virtualenv
Step 1 - Create a directory for your Virtual Environments
This is simply good hygene but the idea is to create a directory where you can place all of your virtual environments.
Step 2 - Create a new Virtual Environment
-p flag will indicate to create a virtual environment using Python 3 interpreter. Your new virtual environment will now contain 4 folders. The
lib folder is for installing packages. The
bin folder holds the python interpreter and pip installer.
virtualenv -p python3 my_app
Don't Mix Your Virtual Environment with your App
It's wise to keep your virtual environment folder separate from your app folder. Virtual environments are intended to contain packages, tools, the python interpreter, etc. Your project folder is meant for your source code and is often version controlled. It's not recommended to store your virtual environment inside git.
Step 3 - Activate your Environment
bin/activate contains the script used to run your environment. When we activate our environment, we use the
. to import some shellscript code from a file and the file is in your environment.
Step 4 - Double Check
You can double check your activation by checking which version of python you are running.
Another check is to list all of the packages within your environment.
python -m pip list
Step 5 - Install Libraries
Let's install the
python -m pip install requests
Step 6 - Deactivate Virtual Environment
Step 7 - Sharing Dependencies
In Node it's called
package.json. In Ruby it's called
Gemfile. You can do something similar using
pip to describe all the packages and requirements required for your app.
python -m pip freeze > requirements.txt
Step 8 - Import Existing Dependencies into a New Project
Suppose you are working in a team setting and you've downloaded the python project from git. All you need to do is find the text file your team uses to freeze dependencies and import it.
In this command-line example,
requirements.txt is the name of the file with the dependencies we want to import.
python -m pip install -r requirements.txt
Step 9 - Upgrade a Package
You can always upgrade your packages using ```pip`. Simply run:
python -m pip install -U [name of package]