Czasem okazuje się, że kod Pythonowy jest za wolny i numba nie pomoże, albo chcemy wewnątrz pakietu korzystać z biblioteki napisanej w kompilowanym języku programowania (na przykład C/C++). Jeżeli paczka z kodem kompilowanym jest udostępniana tylko jako kod źródłowy, to często, aby ją zainstalować, potrzebna jest specjalna konfiguracja środowiska, w której łatwo popełnić błąd. A sam proces instalacji, ze względu na potrzebę kompilacji może zająć dużo czasu. W Pythonie jako rozwiązanie tego problemu stworzono pliki wheel (*.whl), jednak ze względu na potrzebę obsłuzenia popularnych systemów operacyjnych (Windows, MacOS, Linux) i wielu wersji Pythona samodzielne tworzenie skryptów i środowiska jest bardzo pracochłonne. W czasie prelekcji opowiem o tym, jak za pomocą dostępnych narzędzi, w tym popularnych serwerów Continous Integration, łatwo budować pliki wheel dla Windowsa, MacOS i Linuksa. Opowiem o swoich doświadczeniach w ich używaniu i rozwijaniu.
Managing Python versions and dependencies can be painful. JavaScript developers have their "node_modules" folders, but we don't have "python_modules" (yet!) in Python. Instead, we have those mysterious virtual environments. And if you also want to switch between different Python versions, it can quickly turn into a mess. It doesn't have to be that way. With a few simple tools and practices, you can easily tame Python and its dependencies. In this talk, I'm going to show you how to do this. I will talk about: - How to manage Python versions with pyenv and set different versions for a folder or a shell session? - What are virtual environments, what's the difference between different tools (venv, virtualenvwrapper), and how to use them? - How to separate global packages with pipx (and why you should do this)? - Why you usually don't need pipenv, poetry, and other tools like that (and when they are actually useful)?
Sebastian is a Python consultant, freelancer, and trainer. He started his journey with programming as a software developer at CERN, where he fell in love with Python (and teaching). Now he is helping companies untangle their complicated architecture and build all sorts of interesting Python projects. In his spare time, he talks about Python, best practices in programming, and productivity.