Python: Różnice pomiędzy wersjami

(aktualizacja)
Linia 3: Linia 3:
 
=== Dostępne wersje ===  
 
=== Dostępne wersje ===  
  
Domyślną wersją języka ''Python'' na serwerach MyDevil jest wersja 2.7.8 - wywołanie polecenia <code>python</code> uruchomi interaktywny interpreter języka właśnie w tej wersji. Oprócz tego dostępne są również polecenia <code>python2.7</code>, <code>python3.2</code>, <code>python3.3</code> oraz <code>python3.4</code>, służące do uruchamiania interpretera w wersjach: domyślnej (2.7.8), 3.2.5, 3.3.5, oraz 3.4.1.
+
Domyślną wersją języka ''Python'' na serwerach MyDevil jest wersja 2.7.14 - wywołanie polecenia <code>python</code> uruchomi interaktywny interpreter języka właśnie w tej wersji. Oprócz tego dostępne są również polecenia <code>python2.7</code>, <code>python3.4</code>, <code>python3.5</code> oraz <code>python3.6</code>, służące do uruchamiania interpretera w wersjach: domyślnej (2.7.14), 3.4.7, 3.5.4 oraz 3.6.3.
  
 
=== Virtualenv ===
 
=== Virtualenv ===
  
''Virtualenv'' to narzędzie służące do tworzenia izolowanych środowisk języka ''Python''. Używanie ''Virtualenv'' rozwiązuje podstawowy problem związany z różnymi wersjami dodatkowych bibliotek języka oraz uprawnień - wirtualne środowiska są tworzone całkowicie w katalogu domowym użytkownika, co (razem z dostarczonymi przez ''virtualenv'' w standardzie narzędziami) pozwala na pełne, samodzielne zarządzanie zainstalowanymi modułami.
+
''Virtualenv'' to narzędzie służące do tworzenia izolowanych środowisk języka ''Python''. Używanie ''Virtualenv'' rozwiązuje podstawowy problem związany z różnymi wersjami dodatkowych bibliotek języka oraz uprawnień - wirtualne środowiska są tworzone całkowicie w katalogu domowym użytkownika, co (razem z dostarczonymi przez ''virtualenv'' w standardzie narzędziami) pozwala na pełne, samodzielne zarządzanie zainstalowanymi modułami.
  
 
Przed przystąpieniem do instalacji należy włączyć możliwość korzystania z własnego oprogramowania - [[Binexec]].
 
Przed przystąpieniem do instalacji należy włączyć możliwość korzystania z własnego oprogramowania - [[Binexec]].
  
{{Notice|1=W tym poradniku utworzono i wykorzystano katalog <code class="directory">/usr/home/''login''/.virtualenvs</code> do zgromadzenia wszystkich utworzonych przez użytkownika wirtualnych środowisk. Nowy katalog można utworzyć za pomocą polecenia <code>mkdir /usr/home/''login''/.virtualenvs</code>.}}
+
{{Notice|1=W tym poradniku utworzono i wykorzystano katalog <code class="directory">/usr/home/''login''/.virtualenvs</code> do zgromadzenia wszystkich utworzonych przez użytkownika wirtualnych środowisk. Nowy katalog można utworzyć za pomocą polecenia <code>mkdir /usr/home/''login''/.virtualenvs</code>.}}
  
 
==== Tworzenie wirtualnego środowiska ====
 
==== Tworzenie wirtualnego środowiska ====
  
Wirtualne środowisko można utworzyć wykonując w wybranym katalogu polecenie <code>virtualenv</code> podając nazwę środowiska jako parametr:
+
Wirtualne środowisko można utworzyć wykonując w wybranym katalogu polecenie <code>virtualenv</code> podając nazwę środowiska jako parametr:
  
 
  {{ prompt }}cd /usr/home/''login''/.virtualenvs
 
  {{ prompt }}cd /usr/home/''login''/.virtualenvs
Linia 23: Linia 23:
 
  Installing setuptools, pip...done.{{ endoutput }}
 
  Installing setuptools, pip...done.{{ endoutput }}
  
Takie wywołanie polecenia tworzy nowe środowisko wirtualne wykorzystując domyślną systemową wersję pythona, tj. 2.7.9. Za pomocą flagi <code>-p</code> można wskazać inny plik wykonywalny, co w konsekwencji tworzy środowisko wirtualne używając innej wersji języka ''Python'':  
+
Takie wywołanie polecenia tworzy nowe środowisko wirtualne wykorzystując domyślną systemową wersję pythona. Za pomocą flagi <code>-p</code> można wskazać inny plik wykonywalny, co w konsekwencji tworzy środowisko wirtualne używając innej wersji języka ''Python'':  
  
 
  {{ prompt }}cd /usr/home/''login''/.virtualenvs
 
  {{ prompt }}cd /usr/home/''login''/.virtualenvs
Linia 36: Linia 36:
 
==== Aktywacja wirtualnego środowiska ====
 
==== Aktywacja wirtualnego środowiska ====
  
Do uruchomienia skryptu za pomocą interpretera wystarczy podać ścieżkę do nowego pliku wykonywalnego <code>python</code> (<code class="directory">/usr/home/''login''/.virtualenvs/''nazwa_środowiska''/bin/python</code>), jednak w celu ułatwienia korzystania z ''virtualenv'', utworzony został skrypt <code class="directory">bin/activate</code>, którego załadowanie zmodyfikuje środowisko użytkownika w taki sposób, by ułatwić korzystanie z nowego środowiska.
+
Do uruchomienia skryptu za pomocą interpretera wystarczy podać ścieżkę do nowego pliku wykonywalnego <code>python</code> (<code class="directory">/usr/home/''login''/.virtualenvs/''nazwa_środowiska''/bin/python</code>), jednak w celu ułatwienia korzystania z ''virtualenv'', utworzony został skrypt <code class="directory">bin/activate</code>, którego załadowanie zmodyfikuje środowisko użytkownika w taki sposób, by ułatwić korzystanie z nowego środowiska.
  
 
  {{ prompt }}source /usr/home/''login''/.virtualenvs/''nazwa_środowiska''/bin/activate
 
  {{ prompt }}source /usr/home/''login''/.virtualenvs/''nazwa_środowiska''/bin/activate
 
  <span class="output">(''nazwa_środowiska'')</span> {{ prompt }}
 
  <span class="output">(''nazwa_środowiska'')</span> {{ prompt }}
  
Po załadowaniu skryptu aktywacyjnego widać, że zmienił się znak zachęty. Na początku została podana nazwa wirtualnego środowiska, w którym użytkownik aktualnie się znajduje. W tym stanie nie trzeba podawać pełnej ścieżki do interpretera, polecenia <code>python</code>, <code>pip</code> oraz <code>easy_install</code> będą wykonywane korzystając aktualnie wybranego środowiska wirtualnego.
+
Po załadowaniu skryptu aktywacyjnego widać, że zmienił się znak zachęty. Na początku została podana nazwa wirtualnego środowiska, w którym użytkownik aktualnie się znajduje. W tym stanie nie trzeba podawać pełnej ścieżki do interpretera, polecenia <code>python</code>, <code>pip</code> oraz <code>easy_install</code> będą wykonywane korzystając aktualnie wybranego środowiska wirtualnego.
  
Opuścić dane środowisko można wydając polecenie <code>deactivate</code>.
+
Opuścić dane środowisko można wydając polecenie <code>deactivate</code>.
  
 
==== Strona WWW ====
 
==== Strona WWW ====

Wersja z 01:23, 13 gru 2017

Python to język programowania wysokiego poziomu. Na serwerach MyDevil.net możliwe jest uruchamianie stron i aplikacji opartych o ten język.

Dostępne wersje

Domyślną wersją języka Python na serwerach MyDevil jest wersja 2.7.14 - wywołanie polecenia python uruchomi interaktywny interpreter języka właśnie w tej wersji. Oprócz tego dostępne są również polecenia python2.7, python3.4, python3.5 oraz python3.6, służące do uruchamiania interpretera w wersjach: domyślnej (2.7.14), 3.4.7, 3.5.4 oraz 3.6.3.

Virtualenv

Virtualenv to narzędzie służące do tworzenia izolowanych środowisk języka Python. Używanie Virtualenv rozwiązuje podstawowy problem związany z różnymi wersjami dodatkowych bibliotek języka oraz uprawnień - wirtualne środowiska są tworzone całkowicie w katalogu domowym użytkownika, co (razem z dostarczonymi przez virtualenv w standardzie narzędziami) pozwala na pełne, samodzielne zarządzanie zainstalowanymi modułami.

Przed przystąpieniem do instalacji należy włączyć możliwość korzystania z własnego oprogramowania - Binexec.

Tworzenie wirtualnego środowiska

Wirtualne środowisko można utworzyć wykonując w wybranym katalogu polecenie virtualenv podając nazwę środowiska jako parametr:

cd /usr/home/login/.virtualenvs
virtualenv nazwa_środowiska
New python executable in nazwa_środowiska/bin/python2.7
Also creating executable in nazwa_środowiska/bin/python
Installing setuptools, pip...done.

Takie wywołanie polecenia tworzy nowe środowisko wirtualne wykorzystując domyślną systemową wersję pythona. Za pomocą flagi -p można wskazać inny plik wykonywalny, co w konsekwencji tworzy środowisko wirtualne używając innej wersji języka Python:

cd /usr/home/login/.virtualenvs
virtualenv nazwa_środowiska -p /usr/local/bin/python3.4
Running virtualenv with interpreter /usr/local/bin/python3.4
Using base prefix '/usr/local'
New python executable in nazwa_środowiska/bin/python3.4
Also creating executable in nazwa_środowiska/bin/python
Installing setuptools, pip...done.


Aktywacja wirtualnego środowiska

Do uruchomienia skryptu za pomocą interpretera wystarczy podać ścieżkę do nowego pliku wykonywalnego python (/usr/home/login/.virtualenvs/nazwa_środowiska/bin/python), jednak w celu ułatwienia korzystania z virtualenv, utworzony został skrypt bin/activate, którego załadowanie zmodyfikuje środowisko użytkownika w taki sposób, by ułatwić korzystanie z nowego środowiska.

source /usr/home/login/.virtualenvs/nazwa_środowiska/bin/activate
(nazwa_środowiska) 

Po załadowaniu skryptu aktywacyjnego widać, że zmienił się znak zachęty. Na początku została podana nazwa wirtualnego środowiska, w którym użytkownik aktualnie się znajduje. W tym stanie nie trzeba podawać pełnej ścieżki do interpretera, polecenia python, pip oraz easy_install będą wykonywane korzystając aktualnie wybranego środowiska wirtualnego.

Opuścić dane środowisko można wydając polecenie deactivate.

Strona WWW

Przy dodawaniu strony WWW typu python należy wskazać plik wykonywalny /usr/home/login/.virtualenvs/nazwa_środowiska/bin/python, aby środowisko virtualenv było używane do obsługi strony.

Zmienne

Ustawianie zmiennej z poziomu SSH z widocznością dla aplikacji uruchamianej przez Passengera:

  • Dopisanie zmiennych do ~/.bash_profile (np. export TESTENV=1).
  • Ważne: zmienne nie działają z ~/.bashrc i ~/.shrc

Rozwiązywanie problemów

Niektóre pakiety instalowane przez pip wymagają dodatkowych zmiennych, aby kompilacja przebiegła pomyślnie. Przed uruchomieniem pip install pakiet należy wykonać:

export CFLAGS="-I/usr/local/include"
export CXXFLAGS="-I/usr/local/include"

W przypadku przkraczania limitu procesów systemowych przy instalacji pakietów poprzez pip należy wydać polecenia:

export MAX_CONCURRENCY=1
export CPUCOUNT=1

Odnośniki zewnętrzne