Wirtualne środowiska Pythona bez problemu można wykorzystywać także przy pracy z Jythonem (a także do przełączania się między Pythonem a Jythonem). Nie wymaga to żadnych szczególnych działań, wszystko przebiega niemal identycznie jak pod Pythonem.
Instalacja Jythona
Debian i Ubuntu mają Jythona w pakiecie ale przynajmniej w Ubuntu 9.04
jest to ciągle archaiczna wersja 2.2 (bez generatorów, dekoratorów i
wielu innych niedawnych uzupełnień języka). Dlatego pobieramy
dystrybucję Jythona (plik jython_installer-2.5.1.jar
) z oficjalnego
serwisu, odpalamy
$ java -jar jython_installer_2.5.1.jar
i obsługujemy wizarda. Ja instalowałem w /opt/jython-2.5.1
symlinkując ten katalog potem do /opt/jython
, przy instalacji
gdzie indziej należy odpowiednio skorygować niektóre z cytowanych
dalej poleceń.
Oczywiście potrzebna jest Java. Rozwiązanie bezpieczne dla Ubuntu to:
$ sudo apt-get install sun-java6-jdk sun-java6-jre
a potem:
$ sudo update-java-alternatives --set java-6-sun
Można też próbować z openjdk, odradzam domyślne gcj.
Pierwsze uruchomienie powinno wyglądać jakoś tak:
$ /opt/jython/jython *sys-package-mgr*: processing new jar, '/opt/jython-2.5.1/jython.jar' *sys-package-mgr*: processing new jar, '/usr/lib/jvm/java-6-sun-1.6.0.16/jre/lib/resources.jar' *sys-package-mgr*: processing new jar, '/usr/lib/jvm/java-6-sun-1.6.0.16/jre/lib/rt.jar' ... ciach reszta ... Jython 2.5.1 (Release_2_5_1:6813, Sep 26 2009, 13:47:54) [Java HotSpot(TM) Client VM (Sun Microsystems Inc.)] on java1.6.0_16 Type "help", "copyright", "credits" or "license" for more information. >>> x = sum(i*i for i in xrange(10)) >>> x 285
Celowo nie wrzucam na razie tego katalogu do PATH, wrócę do sprawy za chwilę.
Instalacja setuptools
Przebiega całkowicie standardowo. Pobieramy ez_setup.py i odpalamy
$ /opt/jython/bin/jython ez_setup.py
Skrypt ściąga i instaluje jajko setuptools
, między innymi tworząc
skrypt /opt/jython/bin/easy_install
.
Instalacja virtualenv
Także standardowo - ale właściwym easy_install
:
$ /opt/jython/bin/easy_install virtualenv
Ścieżki
Wrzucanie /opt/jython/bin
do ścieżki nie jest najlepszym pomysłem -
jython
to nie python
ale easy_install
nazywa się tak samo i grozi
pomyłkami, podobny los może czekać inne instalowane skrypty.
Zamiast tego dorzuciłem sobie do .bashrc
:
JYTHON_LOC=/opt/jython alias jy_easy_install="$JYTHON_LOC/bin/easy_install" alias jy_easy_install2.5="$JYTHON_LOC/bin/easy_install-2.5" alias jy_virtualenv="$JYTHON_LOC/bin/virtualenv" alias jython="$JYTHON_LOC/bin/jython"
Zamiast aliasów można sobie zrobić odpowiednio nazwane symlinki w jakimś katalogu należącym do PATH, np.
$ sudo ln -s /opt/jython/bin/easy_install \ /usr/local/bin/jy_easy_install
Jeśli właścicielem katalogu
jython
jestroot
, lepsze jest to drugie rozwiązanie - aliasy nie przenoszą się przezsudo
.
Tworzenie i używanie wirtualnych środowisk
... przebiega dokładnie według standardowej instrukcji.
$ jy_virtualenv ~/jyenv $ . ~/jyenv/bin/activate $ # ... normalne używanie $ deactivate
Uwaga: po aktywacji środowiska wołamy już easy_install
a nie jy_easy_install
.
virtualenvwrapper
Linuksowe ułatwiaczki także zasadniczo działają.
Jedyny problem stanowi mkvirtualenv
. Tu można albo
zrezygnować z tej funkcji i ręcznie tworzyć środowiska
we właściwym miejscu:
$ jy_virtualenv ~/.virtualenvs/jyzigzag
albo dokleić do .bashrc
odpowiednią kopię mkvirtualenv
, np.
function jy_mkvirtualenv () { verify_workon_home (cd "$WORKON_HOME"; jy_virtualenv "$@") workon $(_lastarg "$@") }
i z niej korzystać:
$ jy_mkvirtualenv jyzigzag
Reszta po prostu działa dobrze. W szczególności można robić
$ workon jythonowe_srodowisko $ # ... testy pod Jythonem ... $ workon pythonowe_srodowisko $ # ... testy pod CPythonem
i w ten sposób np. testować jakąś aplikację na zmianę pod Pythonem i pod Jythonem.