Python is easy to learn and use programming language; however, managing dependencies and package versions for it are nowhere as pleasant. One of the basic building block created to help with this is virtual environments. Join me in understanding how virtual environments work from within (by one of the project maintainers); also, to find out if the good old virtualenv project has any place left, now that Python 3.4+ contains venv.
This talk is aimed to be a bit more technical in its first parts, presenting in technical details what a virtualenv is. The target audience is anyone who used virtual environments and wants to understand how they tick from within. I’ll also emphasise diversity and inclusion at Python interpreter level by highlighting other interpreters than CPython: Jython, PyPy or Iron Python. A concise outline goes as follows:
What is a virtual environment?
- why we need it
- what we use it for
- demo - virtualenv vs system env
How do we build a virtual environment (CPython)
- technical workflow of venv creation
- why other than CPython?
- all Python support
- extra activation -> xonosh
Summary and q/a
Type: Talk (30 mins); Python level: Beginner; Domain level: Beginner
I work at Bloomberg, a technology company with more than 5,000 software engineers worldwide – 2,000 of whom use Python in their daily roles. I’m part of the Python Guild at the company, a group of people dedicated to improving the adoption, usage and best practices of Python at the company. Within the last two years, I’ve given multiple presentations to various groups (each with around 100 attendeeds): twice at internal meetups, once at the London Python Meetup, and a two conferences in 2018 (PyLondinium and PyCon EU). I’ve been using Python since 2011, and have been a busy participant in the open source Python community: I am the maintainer of the virtualenv package (tool allowing the creation of Python virtual environments for all Python versions and interpreter types - CPython/Jython/pypy) and the tox tool (allow for easy testing to ensure Python code works under multiple Python version/library versions).