16. Dodatek¶
16.1. Tryb interaktywny¶
There are two variants of the interactive REPL. The classic basic interpreter is supported on all platforms with minimal line control capabilities.
On Windows, or Unix-like systems with curses
support,
a new interactive shell is used by default.
This one supports color, multiline editing, history browsing, and
paste mode. To disable color, see Controlling color for
details. Function keys provide some additional functionality.
F1 enters the interactive help browser pydoc
.
F2 allows for browsing command-line history with neither output nor the
>>> and … prompts. F3 enters „paste mode”, which
makes pasting larger blocks of code easier. Press F3 to return to
the regular prompt.
When using the new interactive shell, exit the shell by typing exit or quit. Adding call parentheses after those commands is not required.
If the new interactive shell is not desired, it can be disabled via
the PYTHON_BASIC_REPL
environment variable.
16.1.1. Przechwytywanie błędów¶
Gdy wystąpi błąd, interpreter wyświetla komunikat błędu i ślad stosu. W trybie interaktywnym zwraca je do wiersza polecenia; jeżeli wejście pochodzi z pliku, na wyjściu generowany jest kod wyjścia różny od zera po wyświetleniu śladu stosu. (Błędy przechwycone przez słowo kluczowe except
w poleceniu try
nie są błędami w tym kontekście). Niektóre błędy są bezwarunkowo krytyczne i wywołują wyjście z programu z kodem wyjścia różnym od zera; dotyczy to wewnętrznych niezgodności i - w niektórych przypadkach - przepełnienia pamięci. Wszystkie komunikaty błędów są wyświetlane na standardowym wyjściu błędów; zazwyczaj jest to normalne wyjście z wykonywania komend.
Wpisanie znaku przerwania (zazwyczaj Control-C lub Delete) w pierwszorzędny lub drugorzędny prompt anuluje tryb wpisywania i wraca do pierwszorzędnego prompta. [1] Wpisanie znaku przerwania podczas wykonywania komendy wywołuje wyjątek KeyboardInterrupt
, który może być obsłużony instrukcją try
.
16.1.2. Wykonywalne skrypty Pythona¶
W systemach uniksowych podobnych do BSD, skrypty Pythona można uczynić bezpośrednio wykonywalnymi, jak skrypty shell, przez dodanie linii
#!/usr/bin/env python3
(zakładając, że interpreter jest na zmiennej PATH
użytkownika) na początku skryptu i nadając plikowi tryb wykonywalny. #!
muszą być pierwszymi dwoma znakami pliku. Na niektórych platformach ta pierwsza linia musi kończyć się uniksowym zakończeniem linii ('\n'
), nie windowsowym zakończeniem linii ('\r\n'
). Zwróć uwagę, że znak kratki, czy krzyżyka, '#'
, jest używany do rozpoczęcia komentarza w Pythonie.
Skryptowi można nadać tryb wykonywalny, lub permission, przy użyciu komendy chmod.
$ chmod +x myscript.py
W systemach Windows nie wyróżnia się „trybu wykonywalnego”. Instalator Pythona automatycznie powiązuje pliki .py
z python.exe
, żeby podwójne kliknięcie w plik Pythona uruchomiło go jako skrypt. Rozszerzeniem może być również .pyw
. W tym przypadku okno konsoli, które normalnie się pojawia, zostanie ukryte.
16.1.3. Plik interaktywnego uruchomienia¶
Gdy używasz Pythona w trybie interaktywnym, często wygodne jest wykonywać jakieś standardowe komendy za każdym razem, gdy uruchamia się interpreter. Możesz to zrobić ustawiając zmienną środowiskową o nazwie PYTHONSTARTUP
na nazwę pliku zawierającego twoje komendy uruchomieniowe. Jest to podobne do funkcji .profile
shellów uniksowych.
Ten plik jest czytany tylko w sesjach interaktywnych, nie gdy Python czyta komendy ze skryptu i nie gdy /dev/tty
jest podany jako źródło komend (które zachowuje się jak sesja interaktywna). Jest wykonywany w tym samym namespace’ie, w którym wykonują się interaktywne komendy, więc obiekty, które definiuje lub importuje mogą być używane bezpośrednio w interaktywnej sesji. Możesz również zmienić znaki prompt sys.ps1
i sys.ps2
w tym pliku.
Jeśli chcesz odczytać dodatkowy plik rozruchowy z bieżącego katalogu, możesz zaprogramować to w globalnym pliku rozruchowym używając kodu takiego jak if os.path.isfile('.pythonrc.py'): exec(open('.pythonrc.py').read())
. Jeśli chcesz użyć pliku rozruchowego w skrypcie, musisz to zrobić jawnie w skrypcie:
import os
filename = os.environ.get('PYTHONSTARTUP')
if filename and os.path.isfile(filename):
with open(filename) as fobj:
startup_file = fobj.read()
exec(startup_file)
16.1.4. Moduły dostosowywania¶
Python provides two hooks to let you customize it: sitecustomize and usercustomize. To see how it works, you need first to find the location of your user site-packages directory. Start Python and run this code:
>>> import site
>>> site.getusersitepackages()
'/home/user/.local/lib/python3.x/site-packages'
Teraz możesz stworzyć plik o nazwie usercustomize.py
w tym katalogu i umieścić w nim co tylko chcesz. Będzie to miało wpływ na każde wywołanie Pythona, chyba że zostanie on uruchomiony z opcją -s
, aby wyłączyć automatyczny import.
sitecustomize works in the same way, but is typically created by an
administrator of the computer in the global site-packages directory, and is
imported before usercustomize. See the documentation of the site
module for more details.
Przypisy