Python Startup

22 września 2015 14:11
Paweł Kucmus

Pierwsze kroki w środowisku Python?

Początki z nowym językiem bywają trudne, prawda? Między elementami takimi jak składnia czy typowanie dochodzimy do punktu, w którym musimy uruchomić profesjonalne środowisko programistyczne, testowe czy produkcyjne. W tym poradniku zajmiemy się instalacją podstawowego środowiska programistycznego Python w wersji 2.7.10.

Poradnik przeznaczony jest dla użytkowników systemu Ubuntu (w tym przykładzie 15.04) ale powinien odpowiadać wszystkim młodszym (od 2014 roku) dystrybucjom opartym o Debian.

Wymagania wstępne

Przed kompilacją Pythona powinniśmy zaopatrzyć nasz system w klika bibliotek. Są to biblioteki używane przez paczki (biblioteki Python), z których prędzej czy później przyjdzie nam korzystać. Późniejsze doinstalowanie tych bibliotek również wchodzi w grę lecz będzie wymagała ponownej kompilacji. Instalacja jest łatwa bo Ubuntu posiada apt-get, które przeprowadza instalację za nas.

sudo apt-get install -y \
    build-essential \
    libsqlite3-dev \
    libbz2-dev \
    zlib1g-dev \
    libssl-dev \
    libjpeg-dev

Kompilacja "czystego" Pythona

Mowa o czystości ma tu duże znaczenie. Ubuntu (jak i inne dystrybucje) mają zainstalowany interpreter Python domyślnie - jako że sam system używa narzędzi napisanych w tym języku. Z tego też powodu wersje niektórych paczek będą przestarzałe lub nienadające się to pracy nad innym projektem. Unikamy zatem tego "środowiska" Python i tworzymy sobie nowe, czyste.

Poniższe kroki zawierają deklaracje zmiennej VAR, która pozwala ustalić jaką wersję chcemy skompilować, w tym przykładzie jest to 2.7.10

Pobieramy archiwum z http://www.python.org i je rozpakowujemy.

VAR=2.7.10  # set this to the newest Python 2 installation available on python.org
cd /tmp
wget https://www.python.org/ftp/python/$VAR/Python-$VAR.tgz
tar -xzf Python-$VAR.tgz

Przechodzimy do katalogu stworzonego przy rozpakowaniu i rozpoczynamy kompilację.

cd Python-$VAR/
./configure --prefix=/opt/python/$VAR
make
sudo make install

Na końcu tworzymy dowiązanie (symboliczne) tak aby uznać naszą wersję interpretera jako domyślna podwersję wersji 2.7.

sudo ln -s /opt/python/$VAR /opt/python/2.7

PIP

Chwilę temu użyliśmy apt-get upraszczając można o tym myśleć jak o Sklepie Play w telefonie z Androidem, tyle że pierwsze instaluje aplikacje na systemie opartym o Debiana a drugie na systemie Andorid. PIP z kolei instaluje paczki Python (gotowe biblioteki wszelakiego zastosowania), np. jeśli będziemy chcieli popracować z plikami graficznymi - nie będziemy wymyślać koła na nowo tylko użyjemy gotowej paczki PIL, którą już ktoś kiedyś napisał i się nią podzielił ze światem.

Nasz "czysty" interpreter celowo zawiera tylko minimum paczek, ale PIP się przyda.

cd /tmp
wget https://bootstrap.pypa.io/get-pip.py
sudo /opt/python/2.7/bin/python get-pip.py

Teraz możemy instalować paczki Python w szybki i łatwy sposób.

Virtualenv i Virtualenv Wrapper

Nasze piękne środowisko należy utrzymać w czystości po to żeby służyło za szkielet dla innych tym razem wirtualnych środowisk. Wyobraźmy sobie sytuację, w której prowadzimy dwa różne projekty: jeden używa Django w wersji 1.5, a drugi 1.8 - jedno środowisko nie może na raz używać obu, kompilować interpreter za interpreterem to też nie rozwiązanie dlatego z naszego szkieletu będziemy tworzyć wirtualne środowiska.

Instalacja Virtualenv (i Virtualenv Wrapper, który jeszcze bardziej ułatwia pracę)

sudo /opt/python/2.7/bin/pip install virtualenv
sudo /opt/python/2.7/bin/pip install virtualenvwrapper

echo "
export VIRTUALENVWRAPPER_PYTHON=/opt/python/2.7/bin/python
export VIRTUALENVWRAPPER_VIRTUALENV=/opt/python/2.7/bin/virtualenv
export WORKON_HOME=~/.virtualenvs
. /opt/python/2.7/bin/virtualenvwrapper.sh
" >> ~/.bashrc
source ~/.bashrc

Od teraz w naszym terminalu dostępne są nowe polecenia, np:

  • utworzenie i wejście w nowe środowisko: mkvirtualenv moje_srodowisko_1
  • usunięcie środowiska: rmvirtualenv moje_srodowisko_1
  • wejście we wcześniej stworzone środowisko: workon moje_srodowisko_1

Zobaczycie, że nazwa środowiska (moje_srodowisko_1) będzie widoczne przed znakiem zachęty wskazując, które ze środowisk jest w użyciu. Od teraz macie dostęp do poleceń python czy pip, które używają i modyfikują TYLKO wirtualne środowisko.

Ład i porządek!

Comments