Categories
easy-install installation pip python windows

How do I install pip on Windows?

2700

pip is a replacement for easy_install. But should I install pip using easy_install on Windows? Is there a better way?

9

  • 23

    From PyCon 2011: blip.tv/pycon-us-videos-2009-2010-2011/… The dirty secret is that pip is a wrapper for easy_install 🙂

    – Civilian

    Sep 23, 2011 at 23:18

  • 10

    Like how apt-get uses dpkg at the core – but it doesn’t make it any less useful!

    Jun 15, 2012 at 10:33

  • 10

    Ruby ships with Gem and Nodejs with Npm, giving users full-featured package management out the box. I for one am envious. stackoverflow.com/a/11453972/284795

    Sep 18, 2012 at 16:13

  • 3

    This is the most popular question with the Windows tag on Stackoverflow. I’m so glad pip ships with Python now.

    Sep 25, 2014 at 13:35


  • 3

    for recent versions of python2 and python3 you can just use python -m ensurepip

    – ccpizza

    Oct 6, 2017 at 6:20

1922

Python 2.7.9+ and 3.4+

Good news! Python 3.4 (released March 2014) and Python 2.7.9 (released December 2014) ship with Pip. This is the best feature of any Python release. It makes the community’s wealth of libraries accessible to everyone. Newbies are no longer excluded from using community libraries by the prohibitive difficulty of setup. In shipping with a package manager, Python joins Ruby, Node.js, Haskell, Perl, Go—almost every other contemporary language with a majority open-source community. Thank you, Python.

If you do find that pip is not available when using Python 3.4+ or Python 2.7.9+, simply execute e.g.:

py -3 -m ensurepip

Of course, that doesn’t mean Python packaging is problem solved. The experience remains frustrating. I discuss this in the Stack Overflow question Does Python have a package/module management system?.

And, alas for everyone using Python 2.7.8 or earlier (a sizable portion of the community). There’s no plan to ship Pip to you. Manual instructions follow.

Python 2 ≤ 2.7.8 and Python 3 ≤ 3.3

Flying in the face of its ‘batteries included’ motto, Python ships without a package manager. To make matters worse, Pip was—until recently—ironically difficult to install.

Official instructions

Per https://pip.pypa.io/en/stable/installing/#do-i-need-to-install-pip:

Download get-pip.py, being careful to save it as a .py file rather than .txt. Then, run it from the command prompt:

python get-pip.py

You possibly need an administrator command prompt to do this. Follow Start a Command Prompt as an Administrator (Microsoft TechNet).

This installs the pip package, which (in Windows) contains …\Scripts\pip.exe that path must be in PATH environment variable to use pip from the command line (see the second part of ‘Alternative Instructions’ for adding it to your PATH,

Alternative instructions

The official documentation tells users to install Pip and each of its dependencies from source. That’s tedious for the experienced and prohibitively difficult for newbies.

For our sake, Christoph Gohlke prepares Windows installers (.msi) for popular Python packages. He builds installers for all Python versions, both 32 and 64 bit. You need to:

  1. Install setuptools
  2. Install pip

For me, this installed Pip at C:\Python27\Scripts\pip.exe. Find pip.exe on your computer, then add its folder (for example, C:\Python27\Scripts) to your path (Start / Edit environment variables). Now you should be able to run pip from the command line. Try installing a package:

pip install httpie

There you go (hopefully)! Solutions for common problems are given below:

Proxy problems

If you work in an office, you might be behind an HTTP proxy. If so, set the environment variables http_proxy and https_proxy. Most Python applications (and other free software) respect these. Example syntax:

http://proxy_url:port
http://username:[email protected]_url:port

If you’re really unlucky, your proxy might be a Microsoft NTLM proxy. Free software can’t cope. The only solution is to install a free software friendly proxy that forwards to the nasty proxy. http://cntlm.sourceforge.net/

Unable to find vcvarsall.bat

Python modules can be partly written in C or C++. Pip tries to compile from source. If you don’t have a C/C++ compiler installed and configured, you’ll see this cryptic error message.

Error: Unable to find vcvarsall.bat

You can fix that by installing a C++ compiler such as MinGW or Visual C++. Microsoft actually ships one specifically for use with Python. Or try Microsoft Visual C++ Compiler for Python 2.7.

Often though it’s easier to check Christoph’s site for your package.

24

  • 3

    @MikeMcMahon that happened to me too. Put Python before Perl in your path, so typing pip gets you the Python package manager.

    Jun 27, 2013 at 22:00


  • 6

    I didn’t have to do any of this, I just followed the instructions on pip-installer.org/en/latest/installing.html (basically you just write “python ez_setup.py” and then “python get-pip.py”)

    Nov 10, 2013 at 19:50

  • 3

    This is probably a dumb question. I entered python get-pip.py on a windows prompt but get “python is not recognized as an internal or external command, operable program or batch file.” Am I doing something wrong? I have Python 2.7.8 installed. Do I need to change the directory? Thanks.

    – Andrew

    Jul 14, 2015 at 16:39

  • 2

    @Andrew you need add eg. C:\Python27 to the system PATH (which is where the command prompt looks for programs), follow superuser.com/a/143121/62691

    Jul 14, 2015 at 17:47


  • 13

    To start the “build in” pip you have to use python -m pip on windows!

    – powtac

    Mar 6, 2016 at 13:35


308

Outdated — use distribute, not setuptools as described here. —
Outdated #2 — use setuptools as distribute is deprecated.

As you mentioned pip doesn’t include an independent installer, but you can install it with its predecessor easy_install.

So:

  1. Download the last pip version from here: http://pypi.python.org/pypi/pip#downloads
  2. Uncompress it
  3. Download the last easy installer for Windows: (download the .exe at the bottom of http://pypi.python.org/pypi/setuptools ). Install it.
  4. copy the uncompressed pip folder content into C:\Python2x\ folder (don’t copy the whole folder into it, just the content), because python command doesn’t work outside C:\Python2x folder and then run: python setup.py install
  5. Add your python C:\Python2x\Scripts to the path

You are done.

Now you can use pip install package to easily install packages as in Linux 🙂

11

  • 1

    When run the command “python setup.py install”, if you got “error: pip.egg-info\PKG-INFO: Permission denied”, then try to remove the read only attribute on the uncompressed pip directory.

    May 5, 2011 at 4:04

  • 13

    If you install a 64-bit version of python, setuptools will not detect your python executable. I found some binaries here that will, though (unofficial): lfd.uci.edu/~gohlke/pythonlibs

    – Chris

    Jun 27, 2011 at 17:18

  • Once I’ve installed pip using easy_install can I remove setuptools by pip uninstall setuptools? Is this okay or would it lead to issues later on?

    Aug 20, 2011 at 7:40

  • 2

    As an alternative to step 4, simply run setup.py from wherever pip was dowloaded to e.g. from firefox C:\Users\Tony\Downloads\pip-1.2.1\pip-1.2.1

    – Pyderman

    Feb 28, 2013 at 16:47

  • 4

    This method still works very well as of 02/2016 to install pip (and then nose!) on Python 2.6 on Windows. Indeed, using Gohlke’s binaries is no longer an option since he replaced them all by wheels.

    – gaborous

    Jan 30, 2016 at 16:28

224

2014 UPDATE:

1) If you have installed Python 3.4 or later, pip is included with Python and should already be working on your system.

2) If you are running a version below Python 3.4 or if pip was not installed with Python 3.4 for some reason, then you’d probably use pip’s official installation script get-pip.py. The pip installer now grabs setuptools for you, and works regardless of architecture (32-bit or 64-bit).

The installation instructions are detailed here and involve:

To install or upgrade pip, securely download get-pip.py.

Then run the following (which may require administrator access):

python get-pip.py

To upgrade an existing setuptools (or distribute), run pip install -U setuptools

I’ll leave the two sets of old instructions below for posterity.

OLD Answers:

For Windows editions of the 64 bit variety – 64-bit Windows + Python used to require a separate installation method due to ez_setup, but I’ve tested the new distribute method on 64-bit Windows running 32-bit Python and 64-bit Python, and you can now use the same method for all versions of Windows/Python 2.7X:

OLD Method 2 using distribute:

  1. Download distribute – I threw mine in C:\Python27\Scripts (feel free to create a Scripts directory if it doesn’t exist.
  2. Open up a command prompt (on Windows you should check out conemu2 if you don’t use PowerShell) and change (cd) to the directory you’ve downloaded distribute_setup.py to.
  3. Run distribute_setup: python distribute_setup.py (This will not work if your python installation directory is not added to your path – go here for help)
  4. Change the current directory to the Scripts directory for your Python installation (C:\Python27\Scripts) or add that directory, as well as the Python base installation directory to your %PATH% environment variable.
  5. Install pip using the newly installed setuptools: easy_install pip

The last step will not work unless you’re either in the directory easy_install.exe is located in (C:\Python27\Scripts would be the default for Python 2.7), or you have that directory added to your path.

OLD Method 1 using ez_setup:

from the setuptools page

Download ez_setup.py and run it; it will download the appropriate .egg file and install it for you. (Currently, the provided .exe installer does not support 64-bit versions of Python for Windows, due to a distutils installer compatibility issue.

After this, you may continue with:

  1. Add c:\Python2x\Scripts to the Windows path (replace the x in Python2x with the actual version number you have installed)
  2. Open a new (!) DOS prompt. From there run easy_install pip

5

  • 4

    So the install is easyinstall, then pip, then virtualenv, then virtualenvwrapper , then configure independents environments. with script modif in the middle for dealing with proxies… aaarrrgg

    – nicolas

    Aug 27, 2012 at 9:54


  • @nicolas Yeah, easyinstall is just an outdated interface to setuptools. Pip is awesome, and virtualenv offers the kind of control that you don’t get in many other languages without WAY more hackish tactics; perl being the only comparable exception. Ruby has gemsets, but in order to easily swap out Rubies, it’s recommended to use either rbenv or rvm – both of which have always felt somewhat hackish to me (though they work beautifully once set up properly).

    – AndrewPK

    Oct 16, 2012 at 19:30

  • 2

    This exact procedure is automated by pip for windows.

    Dec 24, 2012 at 21:40

  • 2

    +1, help note for noobs like me: don’t type “python2x” literally in the windows path environment variable. Replace x with the python version you have, e.g. python27

    – dbjohn

    Dec 29, 2012 at 22:11


  • Id like to note, i had to use ‘python -m pip’ to use the module in windows.

    – Mouseroot

    May 20, 2014 at 2:02