2009-09-12 28 views
9

Wydaje się, że wszyscy polecają virtualenv dla wielu wersji Pythona (na osx), ale czy nawet działa z Pythonem 3.0? Ściągnąłem go i wydaje mi się, że nie ... I tak naprawdę nie rozumiem, jak to działa, czy możesz "włączyć" na env na raz lub coś? To, czego chcę, to pozostawić systemowy python 2.5 (oczywiście) i mieć python 3.1.1 z pismem podwersyjnym do pisania własnych rzeczy, a python 2.6 z normalnym stabilnym pygame używać do uruchamiania innych rzeczy, takich jak gry pygame pobrane z pygame .org. Jakąkolwiek pomoc, jak to osiągnąć? Dzięki.Python - Virtualenv, python 3?

OK Uświadomiłem sobie, że virtualenv nie jest tym, czego szukam.

+4

Od wersji 1.6 virtualenv obsługuje język Python 3. –

Odpowiedz

3

Twój przypadek użycia w rzeczywistości nie potrzebuje virtualenv. Musisz tylko zainstalować kilka różnych wersji Pythona.

+0

Po prostu lubię używać najnowszej wersji, po prostu uczę się programowania jako hobby, więc nie ma znaczenia dla nikogo innego, której wersji używam. – mk12

+0

Więc, jeśli chcesz używać pygame, myślisz, że powinienem trzymać się 2.6? – mk12

+0

Tak, powinieneś trzymać się 2.6. –

0

Nie wiem, czy ja zrozumiałem, ale tu idzie :)

nie wiem o OS X, ale w Linuksie można zainstalować zarówno 2,6 i 3. Następnie można albo określić, czy użycie Python25 python3 lub zmień dowiązanie symboliczne/usr/bin/python na wersję, której chcesz używać domyślnie.

+0

Czy mówisz o bez virtualenv? – mk12

+0

Nie, mówię o użyciu wielu wersji python. Z tego, co wiem, virtualenv jest używany do pracy z zależnościami wielu wersji, a nie z wieloma wersjami samego Pythona. Ale mogę się mylić :-) – l3dx

+0

ohh .. Szkoda, że ​​nie było Python Preferences.app jak Java Preferences.app .. – mk12

1

virtualenv służy do tworzenia izolowanych środowisk środowiska Python. Sztuką do jej stosowania z wieloma instancjami Python jest albo zainstalować virtualenv do każdej z wersji Pythona, których chcesz używać go, na przykład:

/usr/bin/easy_install-2.6 virtualenv 
/usr/local/bin/easy_install virtualenv 
sudo port install py26-virtualenv 

lub powołania go do zamierzonego wersji Pythona, na przykład:

/usr/bin/python2.6 virtualenv.py ENV 
/usr/local/bin/python2.6 virtualenv.py ENV 
/opt/local/bin/python2.5 virtualenv.py ENV 

Więc, jako taki, nie bezpośrednio rozwiązać problem (szczególnie dotkliwy na OS X), który Python chcesz pracować. Istnieją różne sposoby radzenia sobie z tym problemem: używaj bezwzględnych ścieżek do zamierzonego Pythona (jak w powyższych przykładach), zdefiniuj aliasy shella, ostrożnie zarządzaj między innymi kolejnością wyszukiwania $PATH.

Obecnie AFAIK, virtualenv nie jest obsługiwany z Python 3, ponieważ, między innymi, setuptools (magia za easy_install) nie jest jeszcze obsługiwana w Pythonie 3, chociaż istnieje kierunku roztworu do tego.

BTW, wiele osób używa virtualenvwrapper Douga Hellmana, aby uprościć korzystanie z virtualenv.

+0

Mam już Python 3.2.3, ale muszę zainstalować Python 3.3.2 dla niektórych rzeczy w Oczywiście, a moje stare kody są związane z pygame, chcę użyć virtualenv po zainstalowaniu go, a także PIP, nie wiem jak dołączyć pygame do każdego środowiska Pythona 3.3.2 lub Pythona 3.2.3, używam Windows XP, wszelkie opinie, instrukcje lub referencje są mile widziane. – mazlor

1

Dla mnie virtualenv3 działa bardzo dobrze. Mam również zainstalowany pypi.python.org/pypi/distribute. Działa to również na wspomnianym www.doughellmann.com/docs/virtualenvwrapper/. Testowałem to tylko na Linuksie.

+1

Teraz jest również virtualenv5 http://pypi.python.org/pypi/virtualenv5/ – Alien8

+2

virtualenv3 jest już nieaktualny! https://pypi.python.org/pypi/virtualenv3 –

14

To już stare pytanie, ale znalazłem to na szczycie wyszukiwarki Google, szukając odpowiedzi i nie sądzę, że udzielone odpowiedzi są tym, czego szukają ludzie.

Jak rozumiem, chcesz tworzyć różne środowiska wirtualne z różnymi wersjami Pythona?

To bardzo proste, a potrzebujesz tylko samego virtualenv.

Bo, powiedzmy, Python 3:

$ virtualenv -p python3 p34env 

(...) 
New python executable in p34env/bin/python3.4 
Also creating executable in p34env/bin/python 
Installing setuptools, pip...done. 

$ source p34env/bin/activate 

(p34env)$ python -V 
Python 3.4.2 

(p34env)$ deactivate 
$ 

użyć komendy source aby aktywować venv i deactivate do - zgadliście - wyłączyć go.Zawiadomienie o zmianach wskazujących na env.

Dla standardowej wersji systemu Python po prostu pomijamy argument -p python3 i można użyć argumentu, aby wskazać dowolną wersję z podaną ścieżką.

Ostatnim argumentem jest nazwa (p34env) i możesz zrobić tyle, ile chcesz, po prostu nadaj im różne nazwy.