2026-07-20 –, Room 1.38 (Ground Floor, Turing)
When writing Python code for scientific applications, you may reach a point where you want to share your work with collaborators that don't code. But what if you do not want to require them to set up Python environments or act as their tech support?
There are tools to avoid that by converting your Python code into executable that can be run without Python setup, and with all dependencies included.
In this talk I will share my experience with using some of those tools like PyInstaller and Conda constructor and how you could do the same.
Showed solutions might be used for both CLI script and application with graphical Interface.
Importantly, I will also mention some of the callenges that you might encounter and how to solve them.
The purpose of this talk is to make people aware of options to share their Python code with non-coding collaborators and to share some lessons learned and practical tips.
Based on real life examples of bundling applications using PyInstaller and Conda constructor, I will share my experience on how to do that, and what problems you might encounter.
These two tools are used as they represent two different approaches:
1) PyInstaller (also Py2exe, etc) - is a tool that takes your python code and creates frozen executable that contains pa Python interpreter and all dependencies. So iIt couldan be downloaded and used directly, even offline
2) Conda constructor - is a tool for building an installer that sets up a full Conda environment, adds shortcuts, etc. At a cost of higher complexity, the application can self-update and it is more flexible in terms of what it can do.
The presentation will include simple examples of how to use these tools, and also some tips on how to automate the process using CI.
There will also be a part about problems that you might encounter, like signing of executables and why it might be important.
Armed with these examples and top tips, I hope you will gain some key insights into how to make your Python code easier to use, and reuse, for collaborators from all walks of life!"
I'm napari (napari.org) core team member and Assistant Professor on University of Warsaw,
My background are Math and Computer Science.
As a daily task in napari project I focus on debug edge case, improving code efficiency and API to allow user focus on solving problems, not reinventing wheels.