any idea how to update python PIP on a windows box

2019-01-30 17:26发布

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....

4条回答
叼着烟拽天下
2楼-- · 2019-01-30 18:05

easy_install -U pip

:-)

查看更多
来,给爷笑一个
3楼-- · 2019-01-30 18:06

Run pip as a script, using python as the main executable.

python -m pip install -U pip
查看更多
beautiful°
4楼-- · 2019-01-30 18:14

Try:
Right Click Anaconda Prompt (Run as Admin)

>> conda update pip

(If you are using Anaconda. PS: It worked for me)

查看更多
等我变得足够好
5楼-- · 2019-01-30 18:19

[UPDATE 2015-11-15] This post is obsolete and out of date. Current best practice is according to pip is to use the following:

python -m pip install -U pip setuptools

It's not necessary to use easy_install from setuptools. The recommended procedure to update pip, from the pip-installer page is to use get-pip.py.

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

You can use the following in a Bash shell like msysgit's Git Bash.

user@machine ~$ curl -L https://raw.githubusercontent.com/pypa/pip/master/contrib/get-pip.py | python

Use the -L option to follow redirects. Recently GitHub changed the url for raw content, so the old raw get-pip.py url has been redirected and on the pip website the url was changed. If successful, you should see the following:

$ curl -L https://raw.githubusercontent.com/pypa/pip/master/contrib/get-pip.py | python
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1309k  100 1309k    0     0   364k      0  0:00:03  0:00:03 --:--:--  366k
Downloading/unpacking pip from https://pypi.python.org/packages/py2.py3/p/pip/pip-1.5.6-py2.py3-none-any.whl#md5=4d4fb4b69df6731c7aeaadd6300bc1f2
Installing collected packages: pip
  Found existing installation: pip 1.5.4
    Uninstalling pip:
      Successfully uninstalled pip
Successfully installed pip
Cleaning up...

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, probably curl-7.29.0-rtmp-ssh2-ssl-sspi-zlib-idn-static-bin-w32, and you should find curl.exe. Yay! Now in a windows shell type this after the prompt (which will have your username instead of myusername), replacing path\to\Curl\ with the path to the downloaded curl.exe file.

C:\Users\myusername> path\to\Curl\curl.exe -kL https://bootstrap.pypa.io/get-pip.py | python

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:

$ curl https://bootstrap.pypa.io/get-pip.py | python
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1309k  100 1309k    0     0   369k      0  0:00:03  0:00:03 --:--:--  371k
Requirement already up-to-date: pip in c:\python27\lib\site-packages
Cleaning up...

Also works just fine in virtualenvs.

查看更多
登录 后发表回答