pip hombrew python 2.7 install üzerinde çalışmıyor


15

Homebrew kullanarak python kurdum ve bash'tan pip çağıramıyorum. Ben / usr / local / bin / python ve / usr local / share / python boşuna dahil etmek için benim .bash_profile değiştirmeyi denedim.

Ben bash komutunu kullandığımda:

find / -name 'pip'

Aldığım tek sonuç:

/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg/pip
/Users/Ivan/Library/Caches/pip
/Users/Ivan/Library/Logs/pip
/usr/local/Cellar/python/2.7.9/libexec/pip
/usr/local/Cellar/python/2.7.9/libexec/pip/pip
/usr/local/lib/python2.7/site-packages/pip

Hiçbiri çalıştırılabilir değil.

Gerçekten pip yürütülebilir bulamıyor gibi benim $ PATH nereye işaret bilmiyorum. Açtığımda

/usr/local/lib/python2.7/site-packages/pip

veya

/usr/local/Cellar/python/2.7.9/libexec/pip/pip

Aşağıdaki dosyaları buluyorum:

__init__.py         commands            operations
__init__.pyc        compat              pep425tags.py
__main__.py         download.py         pep425tags.pyc
__main__.pyc        download.pyc        req
_vendor             exceptions.py       status_codes.py
basecommand.py      exceptions.pyc      status_codes.pyc
basecommand.pyc     index.py            utils
baseparser.py       index.pyc           vcs
baseparser.pyc      locations.py        wheel.py
cmdoptions.py       locations.pyc       wheel.pyc
cmdoptions.pyc      models

Hiçbiri çalıştırılabilir değil.

Benden daha fazla deneyime sahip olan herkesin yardımını takdir ediyorum.

Düzenleme: Marco tarafından önerilen adımları denedim:

Adımların sonuçları şunlardır:

  1. echo $ PATH birkaç dizin gösterir: / usr / local / bin: / usr / local / mysql / bin: / usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin: / usr / texbin: / opt / X11 / bin: / usr / local / mysql / bin

  2. hangi -a python döndürür: / usr / local / bin / python / usr / local / bin / python

hiçbir şey döndürülmez.

  1. hangi python döndürür: / usr / local / bin / python

hangi pip için hiçbir şey döndürülmez

  1. ls -l $ (hangi python) tek bir dizin döndürür: lrwxr-xr-x 1 Ivan admin 33 17 Mayıs 08:59 / usr / local / bin / python -> ../Cellar/python/2.7.9/bin/ piton

ls -l $ (hangi pip) orijinal yazımda gösterdiğim python dosyaları da dahil olmak üzere birkaç döndürür

Yanıtlar:


19

Genellikle, içine homebrewa kuracak ve daha sonra adresine bir bağlantı yerleştirecektir .formula/usr/local/Cellar/formula/usr/local/bin/formula

Yüklü formüller faydalanmak için, emin olun /usr/local/binGözlerinde farklı olduğunu $PATH. $PATHYazarak gösterin

echo $PATH

İçinde yoksa /usr/local/bin, $PATHbu satırı ~/.profiledosyanızın sonuna koyun .

export PATH="/usr/local/bin:$PATH"

Şimdi, OSX'inizde neler olduğunu kontrol edin pythons:

which -a python

/usr/bin/Apple python'da bir tane /usr/local/bin/python ve Homebrew python'u da bulunmalıdır .

which python

size hangi python'un ilk bulunduğunu gösterir $PATH ve çağırdığınızda yürütülür python.

Yürütülebilir dosyanın nerede olduğunu bilmek istiyorsanız, yazarak gösterin

ls -l $(which python)

Bu şöyle görünebilir: lrwxr-xr-x 1 kök çarkı 68 7 Mai 13:22 python -> / usr / local / bin / python

Bu da işe yarayacak pip.

Bu adımların sonuçlarını gösterirseniz, size daha kolay yardımcı olabiliriz.

-- GÜNCELLEME --

Sen gelmiş /usr/local/bin/pythonbağlı /usr/local/Cellar/python/2.7.9/bin/python. -> brew install pythonçalıştı.

show, pipyazarak yüklenmişse

brew list python | grep pip

Görmelisin

/usr/local/Cellar/python/2.7.9/bin/pip

Değilse, yapılmayan bağlantılar olup olmadığını kontrol edin brew install. Size böyle bir şey söyledim:

"Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local"

Bağlantıyı zorlamak ve çakışan tüm dosyaların üzerine yazmak için:

brew link --overwrite python

Silinecek tüm dosyaları listelemek için:

brew link --overwrite --dry-run python

** Standart Apple YOK /usr/bin/python**

dan bağlantı /usr/local/Cellar/python/2.7.9/bin/pythoniçin/usr/bin/python

ln -s /usr/local/Cellar/python/2.7.9/bin/python /usr/bin/python

Bu, ile başlayan tüm python komut dosyaları için gereklidir #!/usr/bin/python. easy_installBağlantı orada değilse özellikle başarısız olur.

Artık koşabilirsin

easy_install pip

Umarım ilerleme kaydedersin


Marco, cevabın için teşekkürler! Lütfen adımlara ilişkin sonuçlar için orijinal soruma bakın - Bunları ekledim
YoungPadawan

@ GençPadawan, Apple standardınız yok gibi görünüyor /usr/bin/python. Bu pek iyi değil çünkü birçok Python betiği ile başlıyor #!/usr/bin/python. Python yoksa, sizinki gibi hata mesajları alırsınız. Kullanırken brew link --dry-run pythonbağlantılarınızda nelerin değişeceğini kontrol etmek için kullanın brew link --overwrite python. Pip'inizi çalıştıracağız ;-)
Marco M. von Hagen

brew link --overwrite --dry-run pythonhangi dosyaların üzerine yazılacağını görmek için kullanın .
Marco M. von Hagen

1
Cevabınızı işaretledim, çünkü bu beni doğru yolda bıraktı, ama sonunda bir izin meselesiydi. Warning: The post-install step did not complete successfully You can try again using brew postinstall python. I tried the Yükledikten sonra bir demlemek postinstall python` komutu aldım ve beni seçtiğim erişimim olmayan birkaç dosyaya götürdü. Şimdi pip kullanabilirim! Tekrar teşekkürler
YoungPadawan

1
Benim durumumda sorundan The post-install step did not complete successfullykaynaklanıyordu error: could not delete '/usr/local/lib/python2.7/site-packages/pip/__init__.py': Permission denied. El ile bu dosyayı silmek ve daha sonra brew postinstall pythontekrar çalıştırmak düzeltildi.
David Pursehouse

5

Demlemek python kurulumunuzu yönetiyorsa ve pip artık sembolik bağlanmamışsa (yani "hangi pip" yazıp sonuç alamıyorsanız) bunu ana dizininizden deneyin:

brew unlink python && brew link python

Eski yöntemin artık çalışıp çalışmadığından emin değilim (makinemde yoktu).

Şimdi ile 2.7 kurulumunuzu işaret ettiğini doğrulayın pip --version(dizin çıktısında python ana sürümünü listeler).


4

Asıl soruya gerçekten bir cevap değil, ancak Homebrew yüklü python/pipoldukları için kimse burada çalışmıyorsa (yani pythonsistem pythonunu gösteriyor ve pipbulunmuyorsa) bunun nedeni, son zamanlarda (2017 yazında) bir değişiklik olabilir. Homebrew python'u kurar ve bağlar.

Çözüm ~/.bash_profileve / veya aşağıdakileri eklemektir ~/.zshrc:

export PATH="$(brew --prefix)/opt/python/libexec/bin:$PATH"

Bu python, python'un demleme versiyonuna işaret edecek ve size verecektir pip. Daha fazla bilgi için aşağıdaki uyarılar bölümüne brew info pythonve https://github.com/Homebrew/homebrew-core/issues/15746 adresine bakın.


2

Varsayılan olarak Homebrew pip yoluyla: sağlar brew install python. Ancak Mac'inizde iki Python yüklü olacak, alternatif olarak şu şekilde yükleyebilirsiniz:

sudo easy_install pip

Python paketinizle hangi dosyaların yüklü olduğunu doğrulamak için şunu deneyin:

$ brew list python
/usr/local/Cellar/python/2.7.9/bin/pip
/usr/local/Cellar/python/2.7.9/bin/pip2
/usr/local/Cellar/python/2.7.9/bin/pip2.7
...

hangi olmalıdır pip.

Kurulumdan sonra, formülünüzün yüklü dosyalarını şu şekilde sembolize etmelisiniz:

brew link python

(örneğin sağ sembolik bağlantıları oluşturmak gereken /usr/local/bin/pipadresinden Müşteri işaret Cellar/python/2.?.?/bin/pip)

İzin sorununuz varsa, sorunu şu şekilde düzeltebilirsiniz:

sudo chgrp -R admin /usr/local /Library/Caches/Homebrew
sudo chmod -R g+w /usr/local /Library/Caches/Homebrew

ve kullanıcınızın yönetici grubunda ( id -Gn $USER) olduğundan emin olun .

İzinleri düzelttikten sonra, komutu sudokullanırken kullanmayın brew.

Ardından tekrar bağlayın:

brew unlink python && brew link python

Kuru çalışmayı test etmek için, bağlantıyı kesip çalıştırın: brew link -n pythonbağlanan dosyaların bağlantılarını görmek için brew.

Bağlama başarılı olduktan sonra, PATH sistem değişkeninizin şunları /usr/localeklediğinden emin olun :

export PATH=/usr/local/sbin:/usr/local/bin:$PATH

~/.bashrcdosyasına ekleyin .

Başarılı olursa, pipşimdi çalışmalısınız.


Cevabınız için teşekkürler kenorb! Sorunun bir parçası da easy_install uygulamasının benim için çalışmadığıdır. Bash'da şunu alıyorum: -bash: / usr / bin / easy_install: / usr / bin / python: bad interpreter: Böyle bir dosya veya dizin yok
YoungPadawan

Bu, yüklemediğiniz anlamına gelir /usr/bin/python(normal olarak OS X ile sağlanmalıdır). Yani hangi olarak önerilen deneyin: brew install python && brew link python, ardından eklemek /usr/local/binadresinden Müşteri PATH.
kenorb

Bunun brew install python && brew link pythonpython'u soktuğunu sanmıyorum /usr/bin. İçinde görüyorum usr/local/bin, ama orada pip için sembolik görmüyorum. Ben de bağlantısız ve python bağlı, ve hiçbir şey değişmez.
Demlemek

@ YoungPadawan brewile hiçbir şey yapmaz /usr/bin, ama /usr/local/bin. Bağlanması gereken tüm dosyaları listelemek ve orada olup olmadığını kontrol etmek için : brew unlink pythonve dry-run: komutunu deneyin . Evetse, olmadan tekrar çalıştırın . brew link -n pythonpip-n
kenorb

Teşekkürler Kenorb, bir çözüm buldum. Sonunda izinler nedeniyle hatalı bir yükleme yapıldı. Demlemekle çakışan ve yüklemeyi yeniden çalıştıran birkaç dosyadaki izinleri değiştirdim ve şimdi her şey iyi çalışıyor. Yukarıdaki soruya yapılan bir yorumda daha fazla ayrıntı var. Cevabınız için tekrar teşekkürler, beni çözüme götürmede gerçekten yardımcı oldu.
YoungPadawan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.