pip install --upgrade pip
doesn't work because the windows FS is brain damaged and won't let you delete an open file.
I've tried setting my environment to the virtualenv that I want to update and then running from a different pip, but that fails with:
(jm) E:\python\jm>c:\Python26\Scripts\pip install --upgrade pip
Downloading/unpacking pip
Running setup.py egg_info for package pip
warning: no previously-included files matching '*.txt' found under directory 'docs\_build'
no previously-included directories found matching 'docs\_build\_sources'
Installing collected packages: pip
Found existing installation: pip 0.7.1
Uninstalling pip:
Successfully uninstalled pip
Running setup.py install for pip
warning: no previously-included files matching '*.txt' found under directory 'docs\_build'
no previously-included directories found matching 'docs\_build\_sources'
Installing pip-script.py script to c:\Python26\Scripts
Installing pip.exe script to c:\Python26\Scripts
Installing pip.exe.manifest script to c:\Python26\Scripts
Installing pip-2.6-script.py script to c:\Python26\Scripts
Installing pip-2.6.exe script to c:\Python26\Scripts
Installing pip-2.6.exe.manifest script to c:\Python26\Scripts
Exception:
Traceback (most recent call last):
File "c:\Python26\lib\site-packages\pip-0.7.1-py2.6.egg\pip\basecommand.py", line 120, in main
File "c:\Python26\lib\site-packages\pip-0.7.1-py2.6.egg\pip\commands\install.py", line 165, in run
File "c:\Python26\lib\site-packages\pip-0.7.1-py2.6.egg\pip\req.py", line 1251, in install
File "c:\Python26\lib\site-packages\pip-0.7.1-py2.6.egg\pip\req.py", line 466, in commit_uninstall
File "c:\Python26\lib\site-packages\pip-0.7.1-py2.6.egg\pip\req.py", line 1549, in commit
File "c:\Python26\lib\shutil.py", line 216, in rmtree
rmtree(fullname, ignore_errors, onerror)
File "c:\Python26\lib\shutil.py", line 216, in rmtree
rmtree(fullname, ignore_errors, onerror)
File "c:\Python26\lib\shutil.py", line 221, in rmtree
onerror(os.remove, fullname, sys.exc_info())
File "c:\Python26\lib\shutil.py", line 219, in rmtree
os.remove(fullname)
WindowsError: [Error 5] Access is denied: 'c:\\users\\mark\\appdata\\local\\temp\\pip-gvsove-uninstall\\python26\\scripts\\pip.exe'
Storing complete log in C:\Users\mark\AppData\Roaming\pip\pip.log
(jm) E:\python\jm>dir c:\Users\mark\AppData\Local\temp\pip-gvsove-uninstall\python26\scripts
Volume in drive C has no label.
Volume Serial Number is 74E4-FE9F
Directory of c:\Users\mark\AppData\Local\temp\pip-gvsove-uninstall\python26\scripts
12/07/2010 11:32 AM <DIR> .
12/07/2010 11:32 AM <DIR> ..
05/14/2010 05:54 PM 7,168 pip.exe
1 File(s) 7,168 bytes
2 Dir(s) 22,824,603,648 bytes free
(jm) E:\python\jm>del c:\Users\mark\AppData\Local\temp\pip-gvsove-uninstall\python26\scripts\pip.exe
I'm hoping someone else has figured out a way around this. Its no problem on linux....
easy_install -U pip
:-)
Run pip as a script, using python as the main executable.
Try:
Right Click Anaconda Prompt (Run as Admin)
(If you are using Anaconda. PS: It worked for me)
[UPDATE 2015-11-15] This post is obsolete and out of date. Current best practice is according to pip is to use the following:
It's not necessary to use
easy_install
from setuptools. The recommended procedure to update pip, from the pip-installer page is to useget-pip.py
.You can use the following in a Bash shell like msysgit's Git Bash.
Use the
-L
option to follow redirects. Recently GitHub changed the url for raw content, so the old rawget-pip.py
url has been redirected and on the pip website the url was changed. If successful, you should see the following:You can modify this for the Windows command line, but first if you don't have libcurl, download a Windows binary from Curl. You'll want to scroll all the way to the bottom and get Günter Knauf's current official Win32 binary (currently 7.29) and unzip it. Don't worry about it being 32-bit versus 64-bit. Just make sure you get the one with all the bells and whistles (ssl, zlib, etc.). Now navigate to the folder where you downloaded curl, probably
c:\Users\<you>\Downloads
, open the extracted folder, probablycurl-7.29.0-rtmp-ssh2-ssl-sspi-zlib-idn-static-bin-w32
, and you should findcurl.exe
. Yay! Now in a windows shell type this after the prompt (which will have your username instead ofmyusername
), replacingpath\to\Curl\
with the path to the downloadedcurl.exe
file.You need the
-k
option to allow curl to access the secure GitHub pip site without certs. Also, thanks Piotr Dobrogost for telling me about Windows pipes,|
, which saves the step of saving the file.If you already have the latest version of pip you will get the following message:
Also works just fine in virtualenvs.