Join us and get access to hundreds of tutorials and a community of expert Pythonistas.

Unlock This Lesson

This lesson is for members only. Join us and get access to hundreds of tutorials and a community of expert Pythonistas.

Unlock This Lesson

Hint: You can adjust the default video playback speed in your account settings.
Hint: You can set the default subtitles language in your account settings.
Sorry! Looks like there’s an issue with video playback 🙁 This might be due to a temporary outage or because of a configuration issue with your browser. Please see our video player troubleshooting guide to resolve the issue.

Getting Started With Pip and PyPI

Give Feedback

Python’s package manager is called pip, and it comes bundled with every recent version of Python. pip allows us to install packages that don’t come bundled with the Python standard library.

By default, pip searches what’s called PyPI, or the Python Package Index. This public repository contains thousands of packages written by the Python community.

This lesson shows you how to use pip to download the requests package from PyPI. This package allows you to conveniently send HTTP requests with Python:

import requests

url = 'https://www.google.com'
response = requests.get(url)
print(f'Response returned: {response.status_code}, {response.reason}')
print(response.text[:200])

Packages can be installed with pip install. To view a full listing of commands, run pip help.

pip list will show you a list of all the currently installed packages. pip show will show you more information about a package, including packages it requires (dependencies) as well as packages that require it (packages it is a dependency of).

The following command string can be used with conda to create a new, minimal virtual environment called web-parser:

$ conda create --name web-parser python --no-default-packages

You can also specify a custom python version:

$ conda create --name web-parser python=3.6 --no-default-packages

00:00 Python’s package manager is called pip, and it comes bundled with every recent version of Python. You can also add it to an existing Python installation with a tool called ensurepip.

00:14 pip allows us to install packages that don’t come bundled with the Python standard library. When you use pip to install a package, it first attempts to locate the package that you desire. By default, it searches what’s called PyPI, or the Python Package Index. PyPI is a massive collection of packages developed and maintained by the Python community.

00:41 You can use pypi.org to browse for new packages. One of my favorites is called matplotlib, so I’ll search for that package. On the left, you can see we can Filter by classifier, such as showing only stable versions for production, or beta if we want to try new features of our favorite packages.

01:06 Here’s the version I’m looking for. You’ll see at the top that underneath the name of the package, PyPI tells us the required pip command to install it.

01:17 We also get a description of the package in the middle and some links relevant to this package on the left. We can even see the Release history.

01:30 Before we can write any programs, we need to create a new virtual environment to store Python, pip, and all of our packages. If you’re using Conda, the command to create this new environment is simply conda create. For the --name, I’ll give it web-parser. For the Python version, I’ll say 3.6. There’s no particular reason for this version, but I just wanted to demonstrate that you can install a specific version of Python if you’d like.

02:05 I’ll also add this --no-default-packages flag, which will greatly reduce the amount of packages Conda installs into our new virtual environment.

02:17 It’ll prompt you to confirm, so press y and hit Enter.

02:25 Once that’s installed, we can use the new virtual environment with conda activate web-parser.

02:34 This will ensure that our terminal uses the versions of Python and pip local to this virtual environment, instead of the global versions installed on our system.

02:46 You can tell it’s activated because the name of the virtual environment shows before the prompt. To demonstrate our new isolated Python development environment, I’ll type which python.

03:00 If you’re on Windows, replace which with where. The path in the output tells us that our Python programs will run using the Python interpreter within the web-parser environment.

03:14 We can do the same thing for pip.

03:19 To see a list of all the possible program arguments you can pass to pip, run pip help. And if I scroll up here, you’ll see that there is a lot we can use pip for. The package I’ll be using in my program is called requests, which allows us to send HTTP requests just like a web browser would. To install it, run pip install requests.

03:48 Here, requests is called the requirement specifier. We can type in just the package name to download the latest stable version, or manually specify a version by appending a dash (-) and then the version number after the package name.

04:07 Once I press Enter, pip will show us all of the packages it’s collecting, as well as where it’s downloading them from. These are all the dependencies needed for requests.

04:19 It looks at the package metadata to know what the package’s dependencies are, and then it installs them. If you get a message saying that pip is out of date, you can upgrade it with this command: python -m pip install --upgrade pip.

04:41 Now that we’ve installed requests, we can list all of the packages we have installed with pip list. If all has gone smoothly, you should now see requests in this list.

04:57 The rest of these packages, Conda installed automatically with our new virtual environment. To show more information about any package, use pip show.

05:11 Notice the last two lines: Requires and Required-by. Requires shows us the packages that this package depends on. Required-by shows us what other packages we have installed that depend on requestsand it looks like we don’t have any.

05:31 Since we’ve confirmed that the requests package has been installed, we’re now ready to write a program that actually utilizes it. Normally, I would use Visual Studio Code, but I’m going to do something a little bit more fun.

05:45 I’ll use a version of the infamous VIM editor, built in Python. It’s called pyVim, and it too can be acquired with pip.

06:00 To create a new file and open it in pyVim, type pyvim and then a filename, like using-requests.py. Once pyVim is open, press i to go into insert mode, and now we can start typing. Of course, we’ll first have to import requests.

06:24 Now, we can define a url variable and grab its response to a GET request, just like this. This next line of code will print the response status code and the reason.

06:39 And also, the first 200 characters of the HTML that’s returned to us.

06:45 Press Escape to exit insert mode and :wq Enter to save and quit pyVim. To run this script with the Python interpreter, we can do python using-requests.py.

07:05 And there’s our output! It looks like everything worked—well—200, OK.

kethan on Sept. 19, 2020

pip command is not installed in Python

Bartosz Zaczyński RP Team on Sept. 21, 2020

It should be. What platform are you on? What version of Python did you install? Are you using plain CPython or some flavor like PyPy or distribution like Anaconda?

Become a Member to join the conversation.