I'm trying to fully grasp how virtual environments are used with Python. I understand what it is they accomplish for the programmer - allowing you to install different dependencies locally for different projects without them conflicting.
However, what I don't understand is how this translates into deploying a production Python program to an end user. Let's say I've made a program and it works and it's all debugged and ready to go. I want to make this available to people. Do people have to download this, put it all into its own virtual environment, pip install from there and then go source the activate script every time they want to run the program? I feel like, using Linux, I must have at least some Python programs on my machine and I know I don't do this - I just sudo apt install the program and it runs.