2015-02-11 21 views
5

Mam zainstalowany Python 2.7.9 przy użyciu Homebrew na moim Macu, a Homebrew instaluje również pip. Jest też starsza, nieużywana wersja Pythona, zainstalowana domyślnie na moim Macu.Problemy z aktualizacją pip w instalacji Homebrew Python 2.7 instalacja

Problem polega na tym, że podczas próby uaktualnienia pip (przy użyciu pip install --upgrade pip), PIP wydaje się chcieć uaktualnić wersję pip, która pochodzi ze starszą, domyślną wersją Pythona. Oto co się dzieje (po wykonaniu nową instalację Pythona 2.7.9, czyli brew remove python następnie brew install python):

$ pip -V 
pip 6.0.7 from /usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-6.0.7-py2.7.egg (python 2.7) 

Powyższe wydaje się prawidłowe. Jednak następujące czynności:

$ pip install --upgrade pip 
You are using pip version 6.0.7, however version 6.0.8 is available. 
You should consider upgrading via the 'pip install --upgrade pip' command. 
Collecting pip from https://pypi.python.org/packages/py2.py3/p/pip/pip-6.0.8-py2.py3-none-any.whl#md5=41e73fae2c86ba2270ff51c1d86f7e09 
    Using cached pip-6.0.8-py2.py3-none-any.whl 
Installing collected packages: pip 
    Found existing installation: pip 6.0.7 
    Uninstalling pip-6.0.7: 
     Successfully uninstalled pip-6.0.7 

Successfully installed pip-1.4.1 

Dlaczego zainstalowano PIP 1.4.1? Teraz otrzymuję:

$ pip -V 
pip 1.4.1 from /Library/Python/2.7/site-packages/pip-1.4.1-py2.7.egg (python 2.7) 

, który wydaje się odpowiadać starszym domyślnej wersji Pythona. Kiedy próbuję ponownie uaktualnić, to nie:

$ pip install --upgrade pip 
Downloading/unpacking pip from https://pypi.python.org/packages/source/p/pip/pip-6.0.8.tar.gz#md5=2332e6f97e75ded3bddde0ced01dbda3 
    Downloading pip-6.0.8.tar.gz (1.2MB): 1.2MB downloaded 
    Running setup.py egg_info for package pip 

    warning: no previously-included files found matching '.coveragerc' 
    warning: no previously-included files found matching '.mailmap' 
    warning: no previously-included files found matching '.travis.yml' 
    warning: no previously-included files found matching 'pip/_vendor/Makefile' 
    warning: no previously-included files found matching 'tox.ini' 
    warning: no previously-included files found matching 'dev-requirements.txt' 
    no previously-included directories found matching '.travis' 
    no previously-included directories found matching 'docs/_build' 
    no previously-included directories found matching 'contrib' 
    no previously-included directories found matching 'tasks' 
    no previously-included directories found matching 'tests' 
Installing collected packages: pip 
    Found existing installation: pip 1.4.1 
    Uninstalling pip: 
Cleaning up... 
Exception: 
Traceback (most recent call last): 
    File "/Library/Python/2.7/site-packages/pip-1.4.1-py2.7.egg/pip/basecommand.py", line 134, in main 
    status = self.run(options, args) 
    File "/Library/Python/2.7/site-packages/pip-1.4.1-py2.7.egg/pip/commands/install.py", line 241, in run 
    requirement_set.install(install_options, global_options, root=options.root_path) 
    File "/Library/Python/2.7/site-packages/pip-1.4.1-py2.7.egg/pip/req.py", line 1294, in install 
    requirement.uninstall(auto_confirm=True) 
    File "/Library/Python/2.7/site-packages/pip-1.4.1-py2.7.egg/pip/req.py", line 525, in uninstall 
    paths_to_remove.remove(auto_confirm) 
    File "/Library/Python/2.7/site-packages/pip-1.4.1-py2.7.egg/pip/req.py", line 1639, in remove 
    renames(path, new_path) 
    File "/Library/Python/2.7/site-packages/pip-1.4.1-py2.7.egg/pip/util.py", line 294, in renames 
    shutil.move(old, new) 
    File "/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 300, in move 
    rmtree(src) 
    File "/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 247, in rmtree 
    rmtree(fullname, ignore_errors, onerror) 
    File "/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 252, in rmtree 
    onerror(os.remove, fullname, sys.exc_info()) 
    File "/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 250, in rmtree 
    os.remove(fullname) 
OSError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/pip-1.4.1-py2.7.egg/EGG-INFO/dependency_links.txt' 

Storing complete log in /Users/[me]/.pip/pip.log 

Jednak pip instaluje poprawnie /usr/local/lib/python2.7/site-packages (wersja Homebrew-przewidzianego), i nie mam żadnych widocznych problemów z wykorzystaniem pip zainstalować moduły i przy użyciu modułów. Oto wyjście which, po wykonaniu wszystkich podanych powyżej:

$ which pip 
/usr/local/bin/pip 
$ which python 
/usr/local/bin/python 

Co się dzieje? Każda pomoc będzie doceniona.

+0

To naprawdę wygląda dziwnie. Spróbowałbym: '/ usr/local/bin/python -E -m pip install --upgrade pip' – cel

+0

' pip 1.4.1 z /Library/Python/2.7/site-packages/pip-1.4.1-py2. 7.egg' to ogólnosystemowa instalacja Pythona w systemie OSX, teraz Homebrew, i nie powinieneś z tym mieszać. Upewnij się, że działa binarnie 'pip' z'/usr/local/bin'. –

+0

@MikkoOhtamaa Jestem całkiem pewien, że '/ usr/local/bin/pip' jest wykonywany, gdy uruchamiam' pip', sądząc po wyniku 'którego pip'. Czy jest to dla mnie rozsądne, aby dojść do wniosku? – dowbuen

Odpowiedz

7

myślę, że to jest ten sam problem opisany tutaj: https://github.com/pypa/pip/issues/2319

Jest to spowodowane przez pip niewłaściwie, gdy nie ma innego jajko pip w sys.path.

Najprostszym rozwiązaniem jest nieprzerwane działanie sudo python -m pip uninstall pip, a następnie brew postinstall python (które ponownie instaluje pip).

+0

To zadziałało dla mnie, dzięki! Ten link był również pomocny w zrozumieniu tego, co się stało. – dowbuen

+0

Wiem, że to dwuletni komentarz - ale to mi pomogło! dzięki – gonzofish

0

Miałem również ten problem (Homebrew Python 2.7.9 na Yosemite). Pobiegłem go do próby zrobić pip install virtualenv:

> which pip2.7 
/usr/local/bin/pip2.7 
> which python 
/usr/local/bin/python 
> pip install virtualenv 
Requirement already satisfied (use --upgrade to upgrade): virtualenv in /Library/Python/2.7/site-packages 
> pip install --upgrade virtualenv 
.. 
OSError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/virtualenv-1.11.5-py2.7.egg-info/dependency_links.txt' 

Rozwiązałem go ukrywając pliki /Library/Python/2.7/site-packages tymczasowo. I przeniesienie ich, kiedy skończyłem.

> pip install virtualenv 
Collecting virtualenv 
    Using cached virtualenv-12.0.7-py2.py3-none-any.whl 
Installing collected packages: virtualenv 

Successfully installed virtualenv-12.0.7 
> which virtualenv 
/usr/local/bin/virtualenv 
> 

Działa również poprawnie. Dostaję 2.7.9 wewnątrz virtualenv i mogę zainstalować numpy, matplotlib, scipy i działają.

Powiązane problemy