2015-11-20 12 views
5

Jak wszyscy wiemy, Mac OS jest dostarczany z zainstalowanym własnym pytonem.Wiele instalacji python i pip, koleś, gdzie są moje pakiety witryny?

Zaleca się pozostawić to w spokoju i użyć homebrew, aby zainstalować nowego pytona w systemie.

Mój problem polega na tym, że po zainstalowaniu Pythona (i PIP) przy użyciu homebrew, pip instaluje pakiety w pakietach witryny Mac OS zamiast własnych. I potwierdziły Używam "homebrew" PIP:

$ which pip 
/usr/local/bin/pip 

Ale kiedy pip zainstalować coś mogę se jest on zainstalowany na:

/lib/python2.7/site-packages 

Pip powinny być zainstalowanie co /usr/local/lib/python2.7/site-packages chyba i” brakuje mi zrozumienia.

Zaskakujące jest to, że kontrola z -V daje zaskakujący wynik:

pip -V 
pip 7.1.0 from /usr/local/lib/python2.7/site-packages (python 2.7) 

Running pip list tuż po uruchomieniu pip install nie pokazuje te pakiety, które zostały rzekomo tylko zainstalowane przez niego, ale udał się do niewłaściwych site-packages .

Dodając do tego, pakiety zainstalowane na /lib/python2.7/site-packages nie są rozpoznawane przez moją $ PYTHONPATH i jako takie nie mogę ich używać.

Aby dodać jeszcze więcej zamieszania, postanowiłem użyć virtualenv, ale byłem zaskoczony, że nawet przy użyciu pip z virtualenv active ciągle instalowałem do /lib/python2.7/site-packages zamiast wirtualnych pakietów-site.

Tak więc, w jakiś sposób otrzymałem pipę homebrew, która instaluje pakiety poza pakietami homebrew i interpreterem pythonowym, który nie może używać pakietów instalowanych przez pip.

W jaki sposób polecam, aby znaleźć główną przyczynę i mieć płynne doświadczenia Pythona? :)

+0

Czy ". venv/bin/activate' your vitualenv? – Ray

Odpowiedz

0

Myślę, że po aktywacji virtualenv ścieżka Pythona powinna wskazywać, że środowisko site-package location - jeśli nie prawdopodobnie nie jest aktywowany. Dopiero po uruchomieniu uruchomi się pip, więc instaluje się w tym wirtualnym pliku env-site. jeśli nie jest aktywna, to pójdzie w jakichkolwiek innych site-packages on już wie o:

  • Krok 1: stworzyć wirtualny env
    • a la ... virtualenv venv
    • Czy to tylko raz !
  • Krok 2: Aktywacja Vitual env
    • coś jak source /venv/bin/activate
    • Potrzeby robi za każdym razem chcesz używać tego wirtualnego środowiska
  • Krok 3: polecenia run pip, oglądać je instaluj się w wirtualnych pakietach env site!

Jeśli wykonasz krok 3 przed krokiem 2, nie użyjesz wirtualnego środowiska, które stworzyłeś, więc wszystkie zakłady są wyłączone - Prawdopodobnie jest to powód, dla którego pip nadal instaluje się w starej lokalizacji.

Teraz, moim ogólnym zaleceniem jest pójść dalej i użyć pyenv, aby zainstalować konkretną wersję Pythona w twoim /Users/username/.pyenv folder i zrezygnować z domyślnych pakietów OSX i homebrew. Jest to proste i można łatwo kontrolować dokładną wersję Pythona do użycia przez proste wydanie polecenia zmiany wersji.

WTEDY użycie virtualenv w python2 lub pyvenv jeśli w python3 (nie mylić z pyenv) do budowania środowisk Vitual z własnych lokalnych witryn opakowań do przechowywania modułów PIP. Gdy aktywujesz virtualenv, twoja $ PYTHONPATH zmieni się na konkretną lokalizację.

Przepływ będzie wówczas:

  • Zastosowanie pyenv ciągnąć w dół i przejść do konkretnej wersji Pythona, którego chcesz użyć - Nadrzędny homebrew i wersji OSX.
  • Stwórz witrualenv. Spowoduje to utworzenie bin, który będzie łączyć się ze stosem Python pyenv, który właśnie podałeś w poprzednim kroku.
  • Aktywuj wirtualny env i kontynuuj.

Pełna kontrola nad otoczeniem!

Powiązane problemy