2015-05-28 25 views
5

Po przełączeniu na python 3.4.3 z wersji 2.7.9 (co było dość proste), często chciałbym przetestować niektóre z moich skryptów w python 2.7.9 przed udostępnieniem ich kolegom. Używam platformy yosemite OSX ze wszystkim skompilowanym z homebrew.Jak mogę sprawić, by python i pyenv homebrew żyły razem?

Sytuacja była dość brzydka (ustawienie PATH es i PYTHONPATH na każdym kroku) - dopóki nie odkryłem pyenv, który robi to bardzo łatwo i jest łatwy do zainstalowania przy użyciu homebrew. Jak na razie dobrze.

Jednak teraz, gdy używam tej wersji Pythona, niekoniecznie dobrze gra z homebrew. Co więcej, uważam, że mogę wrócić do pytona systemu, a bardziej ogólnie, że pyenv może uzyskać dostęp, że:

$ pyenv versions 
    system 
    2.7.9 
* 3.4.3 (set by /usr/local/var/pyenv/version) 

ale jak mogę również dodać wpisy do python s zebranych przez homebrew?

Odpowiedz

4

Można zainstalować pyenv w katalogu domowym (jak opisano w podręczniku instalacji pyenv użytkownika), a następnie utworzyć dowiązania w ~/.pyenv/versions do $(brew --cellar)/python:

ln -s $(brew --cellar python)/* ~/.pyenv/versions/ 

sposób działania Homebrew w dzisiejszych czasach, to wzrośnie zarówno 2 .x i 3.x.

+0

Nie będzie działać, jeśli folder wersji już istnieje i nie będzie zawierał python3. Poza tym jestem prawie pewien, że chodziło Ci o: ln -s $ (brew --cellar)/python ~/.pyenv/versions – misnomer

+1

Właściwie musisz uruchomić 'ln -s $ (brew --cellar python)/* ~/.pyenv/versions'. W przeciwnym razie dodana wersja python będzie się nazywać 'python' zamiast' 2.7.0' – hanxue

+0

Ponieważ próbowałem wyświetlić listę moich zainstalowanych homebrew środowisk Pythona3 w pyenv, to działało dla mnie: 'ln -s $ (napar - piwniczka python3)/* ~/.pyenv/versions' zrobiła sztuczkę dla mnie – JacobWuzHere

3

Cóż, jeśli chcesz, aby pytony z pyenv i pytony homebrew żyły razem, musisz nadać nazwę pythonom homebrew innym niż wersja. W przeciwnym razie będą one kolidować z nazwami katalogów, których używa pyenv. Na przykład, jeśli chcesz zainstalować pyenv python 2.7.11 i homebrew python 2.7.11 możesz zrobić coś takiego.

for i in `ls $(brew --cellar python)/`; do 
    ln -s $(brew --cellar python)/$i $HOME/.pyenv/versions/$i-brew; 
done 

for i in `ls $(brew --cellar python3)/`; do 
    ln -s $(brew --cellar python)/$i $HOME/.pyenv/versions/$i-brew; 
done 

Zasadniczo będzie to utworzenie katalogu $ HOME/.pyenv/Wersje z załączonymi „-brew” tak, że nie będzie kolidować z pytonów pyenv.

+0

błąd w dowiązaniu symbolicznym dla python3; brakuje "3" – farooqsadiq