JupyterLab & Anaconda#

Instalowanie i aktualizowanie pakietów Python (pip, conda)#

W tej części zostaną przedstawione dwa systemy do zarządzania pakietami dla środowsika Python tj. pip oraz conda.

System zarządzania pip jest domyślnym menadżerem pakietów dostępnym dla języka Python. Korzysta z dedykowanego repozytorium pakietów Python Package Index w skrócie PyPi.

Z drugiej strony conda oprócz zarządzania pakietami zajmuję się również zarządzaniem środowiskami wirtualnymi. Dzięki systemowi zarządzania conda jesteśmy w stanie budować wyizolowowane środowiska wirtualne z odpowiednią wersją Python oraz interesującymi nas pakietami. Conda instaluje pakiety z repozytorium Anaconda repository, a także z Anaconda Cloud. Plusem conda jest możliwość wykorzystania tego mendażera nie tylko do Python, ale również m.in. do R czy C++.

Podstawowe polecenia dla pip oraz conda#

Tworzenie środowiska wirtualnego#

Python Virtual Environment (venv) jest środowiskiem Pythona, które jest odseparowane i całkowicie niezależne od głównej instalacji Pythona. Każdy tworzony przez nas projekt może, a nawet powinien, zawierać swoje środowisko, dzięki czemu może składać się z unikalnego zestawu pakietów.

Venv jest nowym katalogiem na dysku, w którym znajduje się kopia Pythona. Zaraz po utworzeniu zawiera ona jedynie podstawowe pakiety. Zupełnie tak, jakbyśmy zainstalowali Pythona sami w nowej lokalizacji.

Z wykorzystaniem command line#

python -m venv /path/to/new/virtual/environment

W condzie:

conda create --name <env_name>

Z wykorzystaniem pliku requirements.txt#

W tym przypadku nie do końca mówimy o instaltacji środowiska, ale raczej o instalacji pakietów z wykorzsytanien pliku tektsowego. Możemy w pliku zdefiniować całą listę pakietów wraz z ich wersajmi, a następnie przy pomocy poniższej komendy zainstalować je wszystkie. Należy pamiętać, aby w tym przypadku w pierwszej kolejności utworzyć środowisko wirtualne z command line.

pip install -r requirements.txt

Z wykorzystaniem pliku environment.yml#

Przykładowy plik environment.yml:

name: <env_name>
channels:
  - defaults
dependencies:
  - python=3.9
  - pandas=1.5.3
  - pip=23.1.2
  - pip:
    - numpy==1.23.5

W tym przypadku tworzymy środowisko wraz z nazwą, odpowiednią wersją python oraz wszystkimi wymienionymi pakietami w zdefiniowanych wersjach.

conda env create -f environment.yml

Aktywacja środowiska#

Aktywacja środowiska conda#

conda activate <env_name>

Po właściwej aktywacji środowiska w wierszu poleceń pokazane jest, które środowisko jest aktywne:

Alt text

W przypadku nieudanej aktywacji (np. będziemy próbować aktywować środowisko, którego nie ma) dostaniemy błąd:

Alt text

Aktywacja środowiska venv#

cd <path_to_virtual_env>/Scripts
activate

Po właściwej aktywacji środowiska będzie ono widoczne:

Alt text

Deaktywacja środowiska#

conda#

conda deactivate

Alt text

venv#

deactivate

Alt text

Wylistowanie wszystkich dostępnych środowisk w condzie#

conda env list

Warto zauważyć, że aktywne środowisko jest oznaczone “*”

Alt text

Usuwanie środowiska conda#

conda env remove --name <env_name>

Możemy usunąć środowisko tylko wtedy, gdy nie jest ono aktywne. W innym wypadku dostaniemy błąd:

Alt text

Instalowanie bibliotek#

pip install <package_name1> <package_name2> ... <package_nameN>
conda install <package_name1> <package_name2> ... <package_nameN>

Odinstalowanie bibliotek#

pip uninstall <package_name1> <package_name2> ... <package_nameN>
conda remove <package_name1> <package_name2> ... <package_nameN>

Export środowiska wirtualnego do pliku environment.yaml#

conda env export > environment.yml

Export listy pakietów do pliku requirements.txt#

pip freeze > requirements.txt

Tworzenie nowych środowisk i zarządzanie nimi z poziomu Anaconda Navigator#

  1. Wybieramy zakładkę Environments z menu po lewej stronie

Alt text

  1. Klikamy przcisk “Create” znajdujący się na dole drugiego panelu

Alt text

  1. Wpisujemy nazwę naszego środowiska oraz wybieramy wersję python. Zatwierdzamy klikając “Create”

Alt text

  1. Dodatkowo możemy zainstalować pakiety ręcznie

Alt text

Przydatne informacje#

Cheatsheet: https://docs.conda.io/projects/conda/en/latest/user-guide/cheatsheet.html

Różnice pomiędzy pip oraz conda: https://www.anaconda.com/blog/understanding-conda-and-pip

JupyterLab / Jupyter Notebook#

Jupyter Notebook służy do wykonywania interaktywnych obliczeń. Zawiera w sobie obliczenia, wyniki, tekst objaśniający, obrazy, bogate reprezentacje multimedialne obiektów, itd.

JupyterLab to internetowy interfejs. Umożliwia on pracę z dokumentami i działaniami takimi jak Jupyter Notebook, edotyory tekstu, wiersze poleceń, itp.

Uruchomienie JupyterLab / Jupyter Notebook#

Z poziomu wiersza poleceń:#

  1. Instalacja pakietu

conda install jupyter
  1. Włączenie JupyterLab (dla notebooka analogicznie)

jupyter-lab

Alt text

  1. Po wpisaniu komendy w przeglądarce JupyterLab chodzi na lokalnym hoście

  2. Nie należy wyłączać wiersza poleceń. W innym wypadku stracimy połączenie z JupyterLab:

Alt text

Z poziomu Anaconda Navigator#

  1. Uruchamiamy Anaconda Navigator

  2. Upewniamy się, że mamy wybrane dobre środowisko:

Alt text

  1. Instalujemy bibliotekę jupyter (o ile nie zrobiliśmy tego wcześniej). Jeśli juptyer nie jest zainstalowany to można to zrobić jednym kliknięciem w menu głównym:

Alt text

  1. Włączamy JupyterLab / Jupyter Notebook:

Alt text

  1. I tym razem JupyterLab również jest włączony na lokalnym hoście

Obsługa Jupter#

Kernel#

Kernele to procesy specyficzne dla języka programowania, które działają niezależnie i wchodzą w interakcje z aplikacjami Jupyter i ich interfejsami użytkownika. ipykernel to referencyjny kernel Jupyter zbudowany na bazie IPython, zapewniający środowisko do interaktywnych obliczeń w Pythonie. Kernel to podstawowy komponent, który odgrywa kluczową rolę w wykonywaniu kodu i zarządzaniem środowiskiem obliczeniowym.

Ręczne zatrzymanie pracy środowiska#

Zdarzyć się może, że nasz kod będzie wykonywać się długo, albo znajdziemy w nim błąd w trakcie jego wykonywania. Na przykład tworząc nieskończoną pętlę:

while True:
    pass

Wtedy możemy zatrzymać jego wykonywanie, zastopować kernel. Wystarczy wybrać opcję “interrupt the kernel” z górnego panelu:

Alt text

Wówczas w wyniku komórki, która się wykonywała dostaniemy odpowiedni błąd:

Alt text

Automatyczne zatrzymanie pracy środowiska#

Czasem bywa tak, że kernel zatrzymuje się automatycznie. Może mieć to związek ze skończeniem się zasobów maszyny, na której pracujemy.

Dodanie kernela środowiska wirtualnego do JupyterLab#

  1. Odpalamy wiersz poleceń

  2. Aktywujemy nasze wirtualne środowisko (poniżej pokazane dla Windows)

cd <path_to_virtual_env>/Scripts
activate

Alt text

  1. W razie potrzeby instalujemy jupyter (jeżeli jupyter jest zainstalowany to patrz punkt 5)

pip pinstall jupyter
  1. Jeżeli nie mamy pip wtedy uruchamiamy dwie komendy:

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
  1. Uruchamiamy komendę (nazwa “local-venv” dowolna):

ipython kernel install --name "local-venv" --user
  1. Wówczas po uruchomieniu JupyterLaba/Notebooka mamy do wyboru nowy kernel:

Alt text

Skróty klawiszowe#

  • Enter - Przejście do trybu edycji komórki

  • Control + Enter - Uruchomienie linijki kodu

  • Shift + Enter - Uruchomienie linijki kodu i przejście do następnej komórki

  • Escape - Przejście do trybu komend

  • a - Wstawienie nowego wiersz powyżej (above)

  • b - Wstawienie nowego wiesza poniżej (below)

  • dd - Usunięcie bieżącego wiesza (delete)

  • m - Zmiana typu komórki na komentarz (markdown)

  • y - Zmiana typu komórki na kod (code)

  • x - Wytnij komórkę (cut)

  • c - Skopiuj komórkę (copy)

  • v - Wstaw wyciętą/skopiowaną komórkę (paste)

  • Shift + m - Połączenie dwóch komórek (merge)

  • Control + Shift + – - Rozdzielenie dwóch komórek (split)

  • Control + s - Zapisz notebook (save)

  • o - Pokaż/ukryj output (output)

  • l - Polaż/ukryj numery linijek (line number)

  • Shift + L - Pokaż/ukryj numery linijek w całym notebooku

  • Control + Shift + f - Wyszukiwanie komend

  • h - Pomoc dot. skrótów klawiaturowych (help)

Praca z Jupyter Notebook#

W notatniku mamy do wyboru kilka opcji:

  • pisanie kodu

  • pisanie Markdown

  • pisanie surowego tekstu

Alt text

Pisanie Markdown#

Nagłówki#
# Nagłówek główny
## H2
### H3
#### H4
##### H5
###### H6

Rezultat:

Nagłówek główny#

H2#

H3#

H4#

H5#
H6#

Pogrubienie, kursywa#
*kursywa*
**pogrubienie**

Rezultat:

kursywa

pogrubienie


Markdown wspiera też HTMLa#
<u>podkreślenie</u> 
nowa linia -> <br />
<b>pogrubienie</b>
<span style="color:red"> kolorowanie </span>
odnośnik<sup>2</sup>
<font size = "5"> Zmiana rozmiaru czcionki
<p style='margin-bottom:1em; margin-right:1em; text-align:right; font-family:Georgia'> Zmiana  stylu  i przesunięcie tekstu</p>

Rezultat:

podkreślenie nowa linia ->
pogrubienie kolorowanie odnośnik2 Zmiana rozmiaru czcionki

Zmiana stylu i przesunięcie tekstu


Listy#
- Element 1
- Element 2
    - Element 2.1
    - Element 2.2
        - Element 2.2.1
1. Element 1
2. Element 2
    - Element 2.1
    - Element 2.2
        - Element 2.2.1

Rezultat:

  • Element 1

  • Element 2

    • Element 2.1

    • Element 2.2

      • Element 2.2.1

  1. Element 1

  2. Element 2

    • Element 2.1

    • Element 2.2

      • Element 2.2.1


Tabele#
1st Header|2nd Header|3rd Header
---|:---:|---: 
col 1 is|left-aligned|1
col 2 is|center-aligned|2
col 3 is|right-aligned|3

Rezultat:

1st Header

2nd Header

3rd Header

col 1 is

left-aligned

1

col 2 is

center-aligned

2

col 3 is

right-aligned

3


Pisanie kodu#

` ``py

def fun(x):

return x**2

` ``

Rezultat:

def fun(x):
    return x**2

Wklejanie obrazków#

Nie ma też przeszkód, żeby wklejać screeny 😜

![logo](https://s3.dualstack.us-east-2.amazonaws.com/pythondotorg-assets/media/community/logos/python-logo-only.png "Logo python")

Rezultat:

logo


Alert boxy#
<div class="alert alert-block alert-info"> <b>Info!</b> To pole wskazuje neutralną informację lub działanie. </div>

<div class="alert alert-block alert-success"> <b>Success!</b> To pole wskazuje pozytywne działanie. </div>

<div class="alert alert-block alert-warning"> <b>Warning!</b> To pole alertu wskazuje ostrzeżenie, które może wymagać uwagi. </div>

<div class="alert alert-block alert-danger"> <b>Danger!</b> To pole wskazuje na niebezpieczne lub potencjalnie negatywne działanie. </div>

Rezultat:

Info! To pole wskazuje neutralną informację lub działanie.
Success! To pole wskazuje pozytywne działanie.
Warning! To pole alertu wskazuje ostrzeżenie, które może wymagać uwagi.
Danger! To pole wskazuje na niebezpieczne lub potencjalnie negatywne działanie.

Okno można stworzyć też samemu:

<div class="warning" style='background-color:#fbff19; color:#000000; border: dashed #b3b536 4px; border-radius: 4px; padding:0.7em;'>
<span>
<p style='margin-top:1em; text-align:center'>
<b>BARDZO WAŻNY KOMUNIKAT</b></p>
<p style='margin-left:1em;'>
Okno stworzone przy użyciu konstrukcji HTML
</p>
<p style='margin-bottom:1em; margin-right:1em; text-align:right; font-family:Georgia'> <i>(można też modyfikować pojedyncze zdania)</i>
</p></span>
</div>

Rezultat:

BARDZO WAŻNY KOMUNIKAT

Okno stworzone przy użyciu konstrukcji HTML

(można też modyfikować pojedyncze zdania)


LaTeX#
Wyrażenia matematyczne: $x=2+x^2$

Wyrażenie wyśrodkowane:
$$
x=2+x^2
$$

Rezultat:

Wyrażenia matematyczne: \(x=2+x^2\)

Wyrażenie wyśrodkowane: $\( x_{n+1}=2+x_{n}^{2} \\ x_{0} = 0 \)$


Przydatne informacje#

Markdown cheatsheet: https://www.ibm.com/docs/en/watson-studio-local/1.2.3?topic=notebooks-markdown-jupyter-cheatsheet

Artykuł z przydatną, podstawową wiedzą: https://ashki23.github.io/markdown-latex.html

Wikipedia Latex: link

Polecenia magiczne#

time#

%time

Mierzy czas wykonywania pojedynczej instrukcji

%%time

Mierzy całkowity czas wykonywania kodu

%%time
import random
for i in range(0, 1000000):
    random.random()
CPU times: total: 62.5 ms
Wall time: 65.1 ms
%time
import random
for i in range(0, 1000000):
    random.random()
CPU times: total: 0 ns
Wall time: 0 ns

who / whos#

Wyświetla informacje o zmiennych aktualnie znajdujących się w przestrzeni nazw.

var_1 = 1
var_2 = 'hello'
var_3 = 100
%who
i	 random	 var_1	 var_2	 var_3	 
%who str
var_2	 
%whos
Variable   Type      Data/Info
------------------------------
i          int       999999
random     module    <module 'random' from 'C:<...>\\jbook\\Lib\\random.py'>
var_1      int       1
var_2      str       hello
var_3      int       100

pinfo#

Funkcja %pinfo w notatnikach Jupyter służy do dostarczania informacji i dokumentacji na temat określonego obiektu, funkcji lub modułu Pythona. Jest to przydatne narzędzie do szybkiego wyszukiwania informacji bez konieczności opuszczania notatnika.

%pinfo var_3
%pinfo len

env#

Pobiera, ustawia lub wyświetla listę zmiennych środowiskowych.

%env WD=Users/my_user/dir
env: WD=Users/my_user/dir
import os

os.environ['WD']
'Users/my_user/dir'
%env
{'ALLUSERSPROFILE': 'C:\\ProgramData',
 'APPDATA': 'C:\\Users\\knajmajer\\AppData\\Roaming',
 'CHOCOLATEYINSTALL': 'C:\\ProgramData\\chocolatey',
 'CHROME_CRASHPAD_PIPE_NAME': '\\\\.\\pipe\\crashpad_2440_SOKHRGZKFLZRGHVO',
 'COLORTERM': 'truecolor',
 'COMMONPROGRAMFILES': 'C:\\Program Files\\Common Files',
 'COMMONPROGRAMFILES(X86)': 'C:\\Program Files (x86)\\Common Files',
 'COMMONPROGRAMW6432': 'C:\\Program Files\\Common Files',
 'COMPUTERNAME': 'PL_KNAJMAJER24',
 'COMSPEC': 'C:\\WINDOWS\\system32\\cmd.exe',
 'CONDA_ALLOW_SOFTLINKS': 'false',
 'CONDA_DEFAULT_ENV': 'jbook',
 'CONDA_EXE': 'C:\\ProgramData\\anaconda3\\Scripts\\conda.exe',
 'CONDA_PREFIX': 'C:\\Users\\knajmajer\\.conda\\envs\\jbook',
 'CONDA_PROMPT_MODIFIER': '(jbook) ',
 'CONDA_PYTHON_EXE': 'C:\\ProgramData\\anaconda3\\python.exe',
 'CONDA_ROOT': 'C:\\ProgramData\\anaconda3',
 'CONDA_SHLVL': '1',
 'DADIR': 'C:\\Program Files (x86)\\CheckPoint\\Endpoint Security\\Endpoint Common',
 'DRIVERDATA': 'C:\\Windows\\System32\\Drivers\\DriverData',
 'EFC_13108': '1',
 'FPS_BROWSER_APP_PROFILE_STRING': 'Internet Explorer',
 'FPS_BROWSER_USER_PROFILE_STRING': 'Default',
 'GIT_ASKPASS': 'c:\\Users\\knajmajer\\AppData\\Local\\Programs\\cursor\\resources\\app\\extensions\\git\\dist\\askpass.sh',
 'HOMEDRIVE': 'C:',
 'HOMEPATH': '\\Users\\knajmajer',
 'IPY_INTERRUPT_EVENT': '984',
 'JPY_INTERRUPT_EVENT': '984',
 'JPY_PARENT_PID': '1100',
 'LANG': 'en_US.UTF-8',
 'LOCALAPPDATA': 'C:\\Users\\knajmajer\\AppData\\Local',
 'LOGONSERVER': '\\\\SYSTEMA',
 'NUMBER_OF_PROCESSORS': '20',
 'ONEDRIVE': 'C:\\Users\\knajmajer\\OneDrive - LPP S.A',
 'ONEDRIVECOMMERCIAL': 'C:\\Users\\knajmajer\\OneDrive - LPP S.A',
 'ORIGINAL_XDG_CURRENT_DESKTOP': 'undefined',
 'OS': 'Windows_NT',
 'PATH': 'C:\\Users\\knajmajer\\.conda\\envs\\jbook;C:\\Users\\knajmajer\\.conda\\envs\\jbook\\Library\\mingw-w64\\bin;C:\\Users\\knajmajer\\.conda\\envs\\jbook\\Library\\usr\\bin;C:\\Users\\knajmajer\\.conda\\envs\\jbook\\Library\\bin;C:\\Users\\knajmajer\\.conda\\envs\\jbook\\Scripts;C:\\Users\\knajmajer\\.conda\\envs\\jbook\\bin;C:\\ProgramData\\anaconda3\\condabin;C:\\Program Files\\PowerShell\\7;C:\\Program Files\\Microsoft SDKs\\Azure\\CLI2\\wbin;C:\\Python312\\Scripts;C:\\Python312;C:\\oracle11\\product\\11.2.0\\client\\bin;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0;C:\\WINDOWS\\System32\\OpenSSH;C:\\Program Files (x86)\\CheckPoint\\Endpoint Security\\Endpoint Common\\bin;C:\\Program Files (x86)\\Microsoft SQL Server\\160\\DTS\\Binn;C:\\Program Files (x86)\\Microsoft SQL Server\\150\\DTS\\Binn;C:\\Program Files\\Azure Data Studio\\bin;C:\\Program Files\\Docker\\Docker\\resources\\bin;C:\\Program Files\\PowerShell\\7;C:\\Program Files\\nodejs;C:\\ProgramData\\chocolatey\\bin;C:\\Users\\knajmajer\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\knajmajer\\AppData\\Local\\Programs\\Git\\cmd;C:\\Users\\knajmajer\\AppData\\Local\\Programs\\Microsoft VS Code\\bin;C:\\Users\\knajmajer\\AppData\\Local\\Programs\\Azure Dev CLI;C:\\Users\\knajmajer\\AppData\\Roaming\\npm;C:\\Program Files\\Microsoft SDKs\\Azure\\CLI2\\wbin;C:\\Python312\\Scripts\\;C:\\Python312\\;C:\\oracle11\\product\\11.2.0\\client\\bin;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\WINDOWS\\System32\\OpenSSH\\;C:\\Program Files (x86)\\CheckPoint\\Endpoint Security\\Endpoint Common\\bin;C:\\Program Files (x86)\\Microsoft SQL Server\\160\\DTS\\Binn\\;C:\\Program Files (x86)\\Microsoft SQL Server\\150\\DTS\\Binn\\;C:\\Program Files\\Azure Data Studio\\bin;C:\\Program Files\\Docker\\Docker\\resources\\bin;C:\\Program Files\\PowerShell\\7\\;C:\\Program Files\\nodejs\\;C:\\ProgramData\\chocolatey\\bin;C:\\Users\\knajmajer\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\knajmajer\\AppData\\Local\\Programs\\Git\\cmd;C:\\Users\\knajmajer\\AppData\\Local\\Programs\\Microsoft VS Code\\bin;C:\\Users\\knajmajer\\AppData\\Local\\Programs\\Azure Dev CLI\\;C:\\Users\\knajmajer\\AppData\\Roaming\\npm',
 'PATHEXT': '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.PYW',
 'POWERSHELL_DISTRIBUTION_CHANNEL': 'MSI:Windows 10 Pro',
 'PROCESSOR_ARCHITECTURE': 'AMD64',
 'PROCESSOR_IDENTIFIER': 'Intel64 Family 6 Model 154 Stepping 3, GenuineIntel',
 'PROCESSOR_LEVEL': '6',
 'PROCESSOR_REVISION': '9a03',
 'PROGRAMDATA': 'C:\\ProgramData',
 'PROGRAMFILES': 'C:\\Program Files',
 'PROGRAMFILES(X86)': 'C:\\Program Files (x86)',
 'PROGRAMW6432': 'C:\\Program Files',
 'PROMPT': '(jbook) $P$G',
 'PSMODULEPATH': 'C:\\Program Files\\WindowsPowerShell\\Modules;C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\Modules',
 'PUBLIC': 'C:\\Users\\Public',
 'SESSIONNAME': 'Console',
 'SSL_CERT_DIR': 'C:\\Users\\knajmajer\\.conda\\envs\\jbook\\Library\\ssl\\certs',
 'SSL_CERT_FILE': 'C:\\Users\\knajmajer\\.conda\\envs\\jbook\\Library\\ssl\\cacert.pem',
 'SYSTEMDRIVE': 'C:',
 'SYSTEMROOT': 'C:\\WINDOWS',
 'TEMP': 'C:\\Users\\KNAJMA~1\\AppData\\Local\\Temp',
 'TERM_PROGRAM': 'vscode',
 'TERM_PROGRAM_VERSION': '0.42.5',
 'TMP': 'C:\\Users\\KNAJMA~1\\AppData\\Local\\Temp',
 'TVDUMPFLAGS': '8',
 'UATDATA': 'C:\\WINDOWS\\CCM\\UATData\\D9F8C395-CAB8-491d-B8AC-179A1FE1BE77',
 'USERDNSDOMAIN': 'HEADQUARTER.COMPANY.LPP.COM.PL',
 'USERDOMAIN': 'HEADQUARTER',
 'USERDOMAIN_ROAMINGPROFILE': 'HEADQUARTER',
 'USERNAME': 'knajmajer',
 'USERPROFILE': 'C:\\Users\\knajmajer',
 'VSCODE_ENV_PREPEND': 'PATH=C\\x3a\\Users\\knajmajer\\.conda\\envs\\jbook;C\\x3a\\Users\\knajmajer\\.conda\\envs\\jbook\\Library\\mingw-w64\\bin;C\\x3a\\Users\\knajmajer\\.conda\\envs\\jbook\\Library\\usr\\bin;C\\x3a\\Users\\knajmajer\\.conda\\envs\\jbook\\Library\\bin;C\\x3a\\Users\\knajmajer\\.conda\\envs\\jbook\\Scripts;C\\x3a\\Users\\knajmajer\\.conda\\envs\\jbook\\bin;C\\x3a\\ProgramData\\anaconda3\\condabin;C\\x3a\\Program Files\\PowerShell\\7;C\\x3a\\Program Files\\Microsoft SDKs\\Azure\\CLI2\\wbin;C\\x3a\\Python312\\Scripts;C\\x3a\\Python312;C\\x3a\\oracle11\\product\\11.2.0\\client\\bin;C\\x3a\\WINDOWS\\system32;C\\x3a\\WINDOWS;C\\x3a\\WINDOWS\\System32\\Wbem;C\\x3a\\WINDOWS\\System32\\WindowsPowerShell\\v1.0;C\\x3a\\WINDOWS\\System32\\OpenSSH;C\\x3a\\Program Files (x86)\\CheckPoint\\Endpoint Security\\Endpoint Common\\bin;C\\x3a\\Program Files (x86)\\Microsoft SQL Server\\160\\DTS\\Binn;C\\x3a\\Program Files (x86)\\Microsoft SQL Server\\150\\DTS\\Binn;C\\x3a\\Program Files\\Azure Data Studio\\bin;C\\x3a\\Program Files\\Docker\\Docker\\resources\\bin;C\\x3a\\Program Files\\PowerShell\\7;C\\x3a\\Program Files\\nodejs;C\\x3a\\ProgramData\\chocolatey\\bin;C\\x3a\\Users\\knajmajer\\AppData\\Local\\Microsoft\\WindowsApps;C\\x3a\\Users\\knajmajer\\AppData\\Local\\Programs\\Git\\cmd;C\\x3a\\Users\\knajmajer\\AppData\\Local\\Programs\\Microsoft VS Code\\bin;C\\x3a\\Users\\knajmajer\\AppData\\Local\\Programs\\Azure Dev CLI;C\\x3a\\Users\\knajmajer\\AppData\\Roaming\\npm;',
 'VSCODE_ENV_REPLACE': 'CONDA_ALLOW_SOFTLINKS=false:CONDA_DEFAULT_ENV=jbook:CONDA_EXE=C\\x3a\\ProgramData\\anaconda3\\Scripts\\conda.exe:CONDA_PREFIX=C\\x3a\\Users\\knajmajer\\.conda\\envs\\jbook:CONDA_PROMPT_MODIFIER=(jbook) :CONDA_PYTHON_EXE=C\\x3a\\ProgramData\\anaconda3\\python.exe:CONDA_ROOT=C\\x3a\\ProgramData\\anaconda3:CONDA_SHLVL=1:PROMPT=(jbook) $P$G:SSL_CERT_DIR=C\\x3a\\Users\\knajmajer\\.conda\\envs\\jbook\\Library\\ssl\\certs:SSL_CERT_FILE=C\\x3a\\Users\\knajmajer\\.conda\\envs\\jbook\\Library\\ssl\\cacert.pem:_CONDA_OLD_CHCP=852:__CONDA_OPENSSL_CERT_DIR_SET="1":__CONDA_OPENSSL_CERT_FILE_SET="1"',
 'VSCODE_GIT_ASKPASS_EXTRA_ARGS': '',
 'VSCODE_GIT_ASKPASS_MAIN': 'c:\\Users\\knajmajer\\AppData\\Local\\Programs\\cursor\\resources\\app\\extensions\\git\\dist\\askpass-main.js',
 'VSCODE_GIT_ASKPASS_NODE': 'C:\\Users\\knajmajer\\AppData\\Local\\Programs\\cursor\\Cursor.exe',
 'VSCODE_GIT_IPC_HANDLE': '\\\\.\\pipe\\vscode-git-9affc1c374-sock',
 'WINDIR': 'C:\\WINDOWS',
 '_CONDA_OLD_CHCP': '852',
 '__CONDA_OPENSSL_CERT_DIR_SET': '"1"',
 '__CONDA_OPENSSL_CERT_FILE_SET': '"1"',
 'PYDEVD_USE_FRAME_EVAL': 'NO',
 'TERM': 'xterm-color',
 'CLICOLOR': '1',
 'FORCE_COLOR': '1',
 'CLICOLOR_FORCE': '1',
 'PAGER': 'cat',
 'GIT_PAGER': 'cat',
 'MPLBACKEND': 'module://matplotlib_inline.backend_inline',
 'WD': 'Users/my_user/dir'}

run#

uruchamia zewnętrzny skrypt pythonowy. Np.

%run script.py

uruchomi skrypt script.py znajdujący się w akutalnym katalogu

# %run script.py

Alt text

  • Wywołujemy

%run script.py
  • Dostajemy

Alt text

lsmagic#

Lista aktualnie dostępnych funkcji magicznych.

%lsmagic
Available line magics:
%alias  %alias_magic  %autoawait  %autocall  %automagic  %autosave  %bookmark  %cd  %clear  %cls  %code_wrap  %colors  %conda  %config  %connect_info  %copy  %ddir  %debug  %dhist  %dirs  %doctest_mode  %echo  %ed  %edit  %env  %gui  %hist  %history  %killbgscripts  %ldir  %less  %load  %load_ext  %loadpy  %logoff  %logon  %logstart  %logstate  %logstop  %ls  %lsmagic  %macro  %magic  %mamba  %matplotlib  %micromamba  %mkdir  %more  %notebook  %page  %pastebin  %pdb  %pdef  %pdoc  %pfile  %pinfo  %pinfo2  %pip  %popd  %pprint  %precision  %prun  %psearch  %psource  %pushd  %pwd  %pycat  %pylab  %qtconsole  %quickref  %recall  %rehashx  %reload_ext  %ren  %rep  %rerun  %reset  %reset_selective  %rmdir  %run  %save  %sc  %set_env  %store  %sx  %system  %tb  %time  %timeit  %unalias  %unload_ext  %who  %who_ls  %whos  %xdel  %xmode

Available cell magics:
%%!  %%HTML  %%SVG  %%bash  %%capture  %%cmd  %%code_wrap  %%debug  %%file  %%html  %%javascript  %%js  %%latex  %%markdown  %%perl  %%prun  %%pypy  %%python  %%python2  %%python3  %%ruby  %%script  %%sh  %%svg  %%sx  %%system  %%time  %%timeit  %%writefile

Automagic is ON, % prefix IS NOT needed for line magics.

load#

Ładuje zawartość zewnętrznego skryptu do komórki.

%load script.py

Alt text

  • Wywołujemy

%load script.py
  • Dostajemy

Alt text

Przydatne informacje#

Lista wbudowanych funkcji magic https://ipython.readthedocs.io/en/stable/interactive/magics.html