2010-12-07 1 views
46

pip install --upgrade pip не работает, потому что Windows FS поврежден мозгом и не позволит вам удалить открытый файл.любая идея, как обновить Python PIP на окне окна?

Я попытался установить мое окружение в virtualenv, что я хочу, чтобы обновить и затем работаю с другим пипа, но терпит неудачу с:

(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 

Я надеюсь, что кто-то придумал, как вокруг этого. Его не проблема на Linux ....

+0

У меня ошибка, но обновление действительно работало. – yoyo 2015-07-08 05:25:48

+0

Как здорово видеть, что это все еще проблема 3,5 года спустя с последними версиями Python 2.7.10 и pip 7.1.2 в Windows. Ни одно из приведенных ниже рекомендаций не устанавливает это. Супер классно. – jarmod 2015-11-05 14:45:52

+0

Решение, которое сработало для меня, - это [здесь] (http://stackoverflow.com/a/17687817/2412846). Короче: вы используете pip для обновления pip, но, поскольку он работает, он не может перезаписывать себя. Скопируйте его где-нибудь и запустите его оттуда. – davidhigh 2016-11-13 00:01:04

ответ

92

easy_install -U pip

:-)

+2

Это было слишком просто. Я не знал, что easy_install действительно понял virtualenvs. Благодарю. – boatcoder 2010-12-07 18:10:02

13

[UPDATE 2015-11-15] Это сообщение не является устаревшим и устаревшим. Текущая лучшая практика according to pip заключается в использовании следующих:

python -m pip install -U pip setuptools 

Это не обязательно использовать easy_install из setuptools. Рекомендуемая процедура обновления pip, с страницы pip-installer - использовать get-pip.py.

Для установки или обновления пип, надежно загрузить get-pip.py.

В Bash shell вы можете использовать msysgit's Git Bash.

[email protected] ~$ curl -L https://raw.githubusercontent.com/pypa/pip/master/contrib/get-pip.py | python 

Используйте опцию -L, чтобы следить за переадресацией. Недавно GitHub изменил URL-адрес для сырого контента, поэтому the old raw get-pip.py url был redirected и на сайте pip the url was changed. В случае успеха, вы должны увидеть следующее:

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

Вы можете изменить это в командной строке Windows, но сначала, если у вас нет Libcurl, download a Windows binary from Curl. Вам нужно прокрутить весь путь до конца и получить Günter Knauf's current official Win32 binary (currently 7.29) и разархивировать его. Не беспокойтесь, что это 32-битный или 64-битный. Просто убедитесь, что вы получили тот, у кого есть все колокола и свистки (ssl, zlib и т. Д.). Теперь перейдите в папку, в которую вы загрузили curl, возможно c:\Users\<you>\Downloads, откройте извлеченную папку, возможно curl-7.29.0-rtmp-ssh2-ssl-sspi-zlib-idn-static-bin-w32, и вы должны найти curl.exe. Ура! Теперь в оболочке Windows введите это после запроса (которое будет иметь ваше имя пользователя вместо myusername), заменив path\to\Curl\ на путь к загруженному файлу curl.exe.

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

Вам нужен -k вариант, чтобы позволить завитку, чтобы получить доступ к безопасному пипу сайта GitHub без сертификатов. Кроме того, спасибо Piotr Dobrogost за то, что рассказали мне о Windows-трубках, |, что сохраняет шаг сохранения файла.

Если у вас уже есть последняя версия пипа вы получите следующее сообщение:

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

Также работает просто отлично в virtualenvs.

49

Запустите pip как скрипт, используя python в качестве основного исполняемого файла.

python -m pip install -U pip