Aby skorzystać z python3 na swoim koncie, musimy utworzyć środowisko wirtualne python.
Dla przykładu posłużymy się następującym zestawem danych:
Serwer o nazwie: testitl
Katalog główny plików serwera: /www/virtual/t/testitl
Konto administratora: admin
Instalowana wersja pythona: 3.3
Po zalogowaniu na konto shell musimy przygotować katalog, który będzie zawierał nasze środowisko wirtualne python:
$ mkdir /www/virtual/t/testitl/python33
Następnie wydajemy polecenie:
$ scl enable python33 bash
W tym momencie mamy uruchomiony shell, w którym domyślną wersją python jest python33, możemy to sprawdzić poleceniem:
$ python -V
Python 3.3.2
W kolejnym kroku tworzymy środowisko wirtualne za pomocą polecenia virtualenv:
$ virtualenv /www/virtual/t/testitl/python33
Using base prefix '/opt/rh/python33/root/usr'
New python executable in /www/virtual/t/testitl/python33/bin/python3
Also creating executable in /www/virtual/t/testitl/python33/bin/python
Installing Setuptools.........done.
Installing Pip.........done.
Aby uruchmoć dowolną np. Django w trybie FastCGI, będziemy potrzebować pakietu flup. flup na python.org nie jest kompatybilny z python3, musimy zainstalować nowszą wersję:
$ /www/virtual/t/testitl/python33/bin/easy_install http://hg.saddi.com/flup-py3.0/archive/tip.zip
Downloading http://hg.saddi.com/flup-py3.0/archive/tip.zip
Processing tip.zip
Writing /tmp/easy_install-twrgyx/flup-py3-0-cc23b715b120/setup.cfg
Running flup-py3-0-cc23b715b120/setup.py -q bdist_egg --dist-dir /tmp/easy_install-twrgyx/flup-py3-0-cc23b715b120/egg-dist-tmp-ddwd67
flup 1.0.3.dev-20140331 is already the active version in easy-install.pth
Installed /www/virtual/t/testitl/python33/lib/python3.3/site-packages/flup-1.0.3.dev_20140331-py3.3.egg
Processing dependencies for flup==1.0.3.dev-20140331
Finished processing dependencies for flup==1.0.3.dev-20140331
Teraz możemy zainstalować np. najnowszą wersję django:
$ /www/virtual/t/testitl/python33/bin/easy_install Django
Searching for Django
Reading https://pypi.python.org/simple/Django/
Best match: Django 1.6.2
Downloading https://pypi.python.org/packages/source/D/Django/Django-1.6.2.tar.gz#md5=45d974c623b3bfbf9976f3d808fe1ee9
Processing Django-1.6.2.tar.gz
Writing /tmp/easy_install-ddanvr/Django-1.6.2/setup.cfg
Running Django-1.6.2/setup.py -q bdist_egg --dist-dir /tmp/easy_install-ddanvr/Django-1.6.2/egg-dist-tmp-aq4vd8
warning: no previously-included files matching '__pycache__' found under directory '*'
warning: no previously-included files matching '*.py[co]' found under directory '*'
zip_safe flag not set; analyzing archive contents...
django.test.__pycache__._doctest.cpython-33: module references __file__
django.test.__pycache__._doctest.cpython-33: module MAY be using inspect.getsourcefile
django.views.__pycache__.i18n.cpython-33: module references __file__
........
Adding Django 1.6.2 to easy-install.pth file
Installing django-admin.py script to /www/virtual/t/testitl/python33/bin
Installed /www/virtual/t/testitl/python33/lib/python3.3/site-packages/Django-1.6.2-py3.3.egg
Processing dependencies for Django
Finished processing dependencies for Django
Aby wykorzystać stworzone środowisko wirtualne w skryptach CGI/FCGI, należy zakualizować ścieżkę interpretera na kopię zainstalowaną w środowisku wirtualnym. Na przykładzie Django w skrypcie django.fcgi pierwsza linia (tzw. shebang) powinna wyglądać następująco:
#!/www/virtual/t/testitl/python33/bin/python
Środowisko wirtualne python jest gotowe do użycia.