![Page 1: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/1.jpg)
Kurs rozszerzony języka PythonInne języki
Marcin Młotkowski
29 stycznia 2020
![Page 2: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/2.jpg)
PythonWarianty środowiskaDystrybucja pakietów
Plan wykładu
1 PythonImplementacje języka PythonC APIOsadzanie Pythona w C
2 Warianty środowiska
3 Dystrybucja pakietów
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 3: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/3.jpg)
PythonWarianty środowiskaDystrybucja pakietów
Implementacje języka PythonC APIOsadzanie Pythona w C
Plan wykładu
1 PythonImplementacje języka PythonC APIOsadzanie Pythona w C
2 Warianty środowiska
3 Dystrybucja pakietów
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 4: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/4.jpg)
PythonWarianty środowiskaDystrybucja pakietów
Implementacje języka PythonC APIOsadzanie Pythona w C
Kanoniczna implementacja
CPython
Podstawowa implementacja języka Python w C.
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 5: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/5.jpg)
PythonWarianty środowiskaDystrybucja pakietów
Implementacje języka PythonC APIOsadzanie Pythona w C
PyPy
jit compilation;
wysoka zgodność z Pythonem 2.7 i 3.6;
możliwość dołączania własnego odśmiecacza pamięci;
wsparcie dla greenletów i stackless;
nieco inne zarządzanie pamięcią.
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 6: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/6.jpg)
PythonWarianty środowiskaDystrybucja pakietów
Implementacje języka PythonC APIOsadzanie Pythona w C
Stackless Python
interpreter oparty na mikrowątkach realizowanych przezinterpreter, nie przez kernel;
dostępny w CPythonie jako greenlet;
stackless bo unika korzystania ze stosu wywołań C.
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 7: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/7.jpg)
PythonWarianty środowiskaDystrybucja pakietów
Implementacje języka PythonC APIOsadzanie Pythona w C
Jython
Cechy Jythona
implementacja Pythona na maszynę wirtualną Javy;
kompilacja do plików .class;
dostęp do bibliotek Javy;
zgodny z Python 2.7.1.
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 8: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/8.jpg)
PythonWarianty środowiskaDystrybucja pakietów
Implementacje języka PythonC APIOsadzanie Pythona w C
IronPython
Implementacja Pythona w środowisku Mono i .NET;
zgodny z Pythonem 2.7.9, choć są niezgodności.
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 9: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/9.jpg)
PythonWarianty środowiskaDystrybucja pakietów
Implementacje języka PythonC APIOsadzanie Pythona w C
Python for S60
Implementacja Nokii na tefony komórkowe z systemem Symbian 60
implementacja Python wersji 2.2.2;
dostęp do sprzętu (SMS’y, siła sygnału, nagrywanie video,wykonywanie i odbieranie połączeń);
wsparcie dla GPRS i Bluetooth;
dostęp do 2D API i OpenGL.
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 10: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/10.jpg)
PythonWarianty środowiskaDystrybucja pakietów
Implementacje języka PythonC APIOsadzanie Pythona w C
Problemy łączenia dwóch języków
Zagadnienia
problemy z różnymi typami danych (listy, kolekcje, napisy);
przekazywanie argumentów i zwracanie wartości;
tworzenie nowych wartości;
obsługa wyjątków;
zarządzanie pamięcią.
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 11: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/11.jpg)
PythonWarianty środowiskaDystrybucja pakietów
Implementacje języka PythonC APIOsadzanie Pythona w C
Dodanie do Pythona nowej funkcji
Zadanie
Moduł z funkcją obliczającą średnią arytmetyczną elementów listy.
Elementy implementacji:
plik nagłówkowy <Python.h>;
implementacja funkcji;
odwzorowanie funkcji w C na nazwę udostępnioną w Pythonie;
funkcja inicjalizująca o nazwie initnazwa modułu.
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 12: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/12.jpg)
PythonWarianty środowiskaDystrybucja pakietów
Implementacje języka PythonC APIOsadzanie Pythona w C
Dodanie do Pythona nowej funkcji
Zadanie
Moduł z funkcją obliczającą średnią arytmetyczną elementów listy.
Elementy implementacji:
plik nagłówkowy <Python.h>;
implementacja funkcji;
odwzorowanie funkcji w C na nazwę udostępnioną w Pythonie;
funkcja inicjalizująca o nazwie initnazwa modułu.
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 13: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/13.jpg)
PythonWarianty środowiskaDystrybucja pakietów
Implementacje języka PythonC APIOsadzanie Pythona w C
Implementacja funkcji
extern PyObject * mean(PyObject *, PyObject *);
PyObject * mean(PyObject * self, PyObject * args){
PyObject * res;PyObject * item;PyObject * lista;Py ssize t n;if (!PyArg ParseTuple(args, ”O”, &lista)) return NULL;if (!PyList Check(lista)) printf(”To nie jest lista!\n”);n = PyList Size(lista);
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 14: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/14.jpg)
PythonWarianty środowiskaDystrybucja pakietów
Implementacje języka PythonC APIOsadzanie Pythona w C
Implementacja, cd.
cd. funkcji
for (i = 0; i < n; i++) {item = PyList GetItem(lista, i);if (!PyLong Check(item)) continue;suma += PyInt AsLong(item);
}res = Py BuildValue(”i”, suma/n);Py INCREF(res);return res;
}
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 15: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/15.jpg)
PythonWarianty środowiskaDystrybucja pakietów
Implementacje języka PythonC APIOsadzanie Pythona w C
Opakowanie funkcji
#include <python3.5/Python.h>
extern PyObject * mean(PyObject *, PyObject *);
PyObject * mean(PyObject * self, PyObject * args){ ... }
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 16: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/16.jpg)
PythonWarianty środowiskaDystrybucja pakietów
Implementacje języka PythonC APIOsadzanie Pythona w C
Deklaracje modułu
static PyMethodDef funkcje[ ] = {{ ”mean”, mean, METH VARARGS, ”Pierwsza funkcja” },{ NULL, NULL, -1, NULL }
};
static PyModuleDef moduledef = {PyModuleDef HEAD INIT, ”modulik”, ”Opis modułu”,-1, funkcje, NULL, NULL, NULL, NULL,
};
PyMODINIT FUNC PyInit modulik(void) {return PyModule Create(&moduledef);
}
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 17: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/17.jpg)
PythonWarianty środowiskaDystrybucja pakietów
Implementacje języka PythonC APIOsadzanie Pythona w C
Kompilacja i instalacja
setup.py
from distutils.core import setup, Extensionmodul = Extension(’modulik’, sources = [’test.c’])setup(name = ”MyPackage”,
version = ’0.1’,description = ’Demonstracja C API’,ext modules = [modul])
Kompilacja i instalacja
$ python setup.py build$ python setup.py install
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 18: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/18.jpg)
PythonWarianty środowiskaDystrybucja pakietów
Implementacje języka PythonC APIOsadzanie Pythona w C
Typy danych w Pythonie
Wszystko w Pythonie jest obiektem
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 19: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/19.jpg)
PythonWarianty środowiskaDystrybucja pakietów
Implementacje języka PythonC APIOsadzanie Pythona w C
Zarządzanie pamięcią
Mechanizm zarządzania pamięcią
Każdy obiekt ma licznik odwołań zwiększany za każdymprzypisaniem.
Jeśli licznik jest równy zero obiekt jest usuwany z pamięci.
W programach w C trzeba dbać o aktualizację licznika.
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 20: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/20.jpg)
PythonWarianty środowiskaDystrybucja pakietów
Implementacje języka PythonC APIOsadzanie Pythona w C
Zmiana licznika odwołań
Zwiększenie licznika
void Py INCREF(PyObject *o)
Zmniejszenie licznika
void Py DECREF(PyObject *o)
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 21: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/21.jpg)
PythonWarianty środowiskaDystrybucja pakietów
Implementacje języka PythonC APIOsadzanie Pythona w C
Trochę łatwiej
Biblioteka Boost:
+ łączenie Pythona z C++
+ łatwiejsza od C API
- czasem nie da się ominąć C API (ale się rozwija)
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 22: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/22.jpg)
PythonWarianty środowiskaDystrybucja pakietów
Implementacje języka PythonC APIOsadzanie Pythona w C
Wykonanie programów Pythonowych
Py Initialize();
PyRun SimpleString(”i = 2”);PyRun SimpleString(”i = i*i\nprint(i)”);
Py Finalize();
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 23: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/23.jpg)
PythonWarianty środowiskaDystrybucja pakietów
Implementacje języka PythonC APIOsadzanie Pythona w C
Wykonanie programów w pliku
Py Initialize();FILE * f = fopen(”test.py”, ”r”);PyRun SimpleFile(f, ”test.py”);Py Finalize();
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 24: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/24.jpg)
PythonWarianty środowiskaDystrybucja pakietów
Implementacje języka PythonC APIOsadzanie Pythona w C
Kompilacja
gcc -lpython3.5 test.c
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 25: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/25.jpg)
PythonWarianty środowiskaDystrybucja pakietów
Implementacje języka PythonC APIOsadzanie Pythona w C
Bezpośrednie wywoływanie funkcji Pythonowych
Deklaracja zmiennych
PyObject *pName, *pModule, *pArgs, *pFunc, *pValue;
Import modułu Pythonowego
Py Initialize();pName = PyString FromString(”modulik”);pModule = PyImport Import(pName);
Pobranie funkcji z modułu
pFunc = PyObject GetAttrString(pModule, ”foo”);
Wywołanie funkcji
pValue = PyObject CallObject(pFunc, pArgs);
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 26: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/26.jpg)
PythonWarianty środowiskaDystrybucja pakietów
Plan wykładu
1 PythonImplementacje języka PythonC APIOsadzanie Pythona w C
2 Warianty środowiska
3 Dystrybucja pakietów
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 27: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/27.jpg)
PythonWarianty środowiskaDystrybucja pakietów
Lokalne środowisko Pythonowe
virtualenv
Tworzy w lokalnym katalogu pełną wersję środowsikapythonowego, którą można modyfikować niezależnie od głównejinstalacji. Można mieć wiele takich wirtualnych środowisk.
$ virtualenv --system-site-packages $HOME/mojesrodowisko$ cd $HOME/mojesrodowisko/$ source bin/activate
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 28: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/28.jpg)
PythonWarianty środowiskaDystrybucja pakietów
Lokalne środowisko Pythonowe
virtualenv
Tworzy w lokalnym katalogu pełną wersję środowsikapythonowego, którą można modyfikować niezależnie od głównejinstalacji. Można mieć wiele takich wirtualnych środowisk.
$ virtualenv --system-site-packages $HOME/mojesrodowisko$ cd $HOME/mojesrodowisko/$ source bin/activate
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 29: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/29.jpg)
PythonWarianty środowiskaDystrybucja pakietów
Przykład
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 30: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/30.jpg)
PythonWarianty środowiskaDystrybucja pakietów
jupyter
Interaktywne środowisko do analizy danych i obliczeń naukowych,np. w pythonie.
Przykład Pawła Rychlikowskiego
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 31: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/31.jpg)
PythonWarianty środowiskaDystrybucja pakietów
Plan wykładu
1 PythonImplementacje języka PythonC APIOsadzanie Pythona w C
2 Warianty środowiska
3 Dystrybucja pakietów
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 32: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/32.jpg)
PythonWarianty środowiskaDystrybucja pakietów
Formaty
egg: stary format;
wheel: aktualny.
Instalacja pakietów
pip
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 33: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/33.jpg)
PythonWarianty środowiskaDystrybucja pakietów
Formaty
egg: stary format;
wheel: aktualny.
Instalacja pakietów
pip
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 34: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/34.jpg)
PythonWarianty środowiskaDystrybucja pakietów
Dystrybucja programów
Cyton: wygenerowanie kodu w C i kompilacja;
Nuitka: generowanie kodu C++;
inne, np. py2exe
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 35: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/35.jpg)
PythonWarianty środowiskaDystrybucja pakietów
Dystrybucja programów
Cyton: wygenerowanie kodu w C i kompilacja;
Nuitka: generowanie kodu C++;
inne, np. py2exe
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 36: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/36.jpg)
PythonWarianty środowiskaDystrybucja pakietów
A bez kompilacji
Skompresować pliki do zip’a!
1. sposób
Plik początkowy nazwać main .py i skompresować cały projekt.
2. sposób
$ python3 -m zipapp apka -m ’’apka:startapp’’gdzie apka to katalog z plikami, a plik apka/startapp.py topoczątek programu.
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 37: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/37.jpg)
PythonWarianty środowiskaDystrybucja pakietów
A bez kompilacji
Skompresować pliki do zip’a!
1. sposób
Plik początkowy nazwać main .py i skompresować cały projekt.
2. sposób
$ python3 -m zipapp apka -m ’’apka:startapp’’gdzie apka to katalog z plikami, a plik apka/startapp.py topoczątek programu.
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 38: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/38.jpg)
PythonWarianty środowiskaDystrybucja pakietów
A bez kompilacji
Skompresować pliki do zip’a!
1. sposób
Plik początkowy nazwać main .py i skompresować cały projekt.
2. sposób
$ python3 -m zipapp apka -m ’’apka:startapp’’gdzie apka to katalog z plikami, a plik apka/startapp.py topoczątek programu.
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 39: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/39.jpg)
PythonWarianty środowiskaDystrybucja pakietów
Plan wykładu
1 PythonImplementacje języka PythonC APIOsadzanie Pythona w C
2 Warianty środowiska
3 Dystrybucja pakietów
Marcin Młotkowski Kurs rozszerzony języka Python
![Page 40: Kurs rozszerzony jezyka Pythonmarcinm/dyd/python/ostatni.pdf · 2020. 1. 28. · Typy danych w Pythonie Wszystko w Pythonie jest obiektem Marcin Młotkowski Kurs rozszerzony języka](https://reader036.vdocuments.mx/reader036/viewer/2022071101/5fda3fae758ed43b391311cb/html5/thumbnails/40.jpg)