IM3S / LDAR_Sim

MIT License
2 stars 0 forks source link

Windows exe version for intermediate users #61

Open tbarchyn opened 3 years ago

tbarchyn commented 3 years ago

Installing python, all the dependencies, and dealing with anaconda and virtual environments, and dealing with installing gdal, and all that stuff is one serious barrier to people using this model. This whole rigamarole needs a lot of time, and patience, and who knows all the challenges people have doing this on enterprise systems. Anaconda aims at this market with managed python - but nobody is going to pay for Anaconda enterprise, make business rationales, get approvals, etc. to 'try' LDAR sim casually.

Most of this is not our fault - Python packaging is an awful mess. Wheels were a great idea that only works part of the time. Compiling anything on Windows is a disaster, so setup.py scripts that compile anything should be outlawed. Anaconda and conda have been the best approach for solving this problem, but installing anything that is not on conda basically breaks the concept as installing with pip installs it globally, where conda should track those packages as part of each conda environment - hopefully this gets fixed eventually. Pipenv works pretty good, but then fails spectacularly in certain situations. Docker is way too heavyweight a solution for most use cases, and doesn't work on Windows anyways unless you got fancy VM stuff. Windows subsystem for Linux is great and better than a virtual machine - but there is a performance hit and it needs another couple years to work out the bugs - not sure if they have brought the new one (WSL2) out of beta. The whole thing feels like the start of the end of Windows as Microsoft just eventually is eaten by Linux from the inside out. Google collab is a great idea that is totally dependent on Google maintaining interest in the idea.

Long message aside - there are some challenges in helping intermediate users 'try' LDAR sim out - or at least get to the place where they can say: 'ok phew, it works on my computer, now I just got to understand all these parameters and what this thing does ...'. Getting it to run is a big hurdle.

One possible solution is compiling a 'frozen' version with pyinstaller for each release for download ... on a best effort basis. This will not work on every computer and will be blocked from running on computers with strict controls on apps - but will work on most windows computers. This wraps up python runtime, all the libraries, and all the code into something that works with one click.

There are no guarantees this will compile, the whole pyinstaller thing is really finicky, but I'm thinking it is worth applying some effort to this at some point because the benefits for users are huge - at least they'll get to the place where it runs, but they don't understand what it does. I'm not thinking fancy UIs or anything - and this doesn't replace the web app - this is designed for people who want to run it locally with full functionality - but don't have the time to fuss with Python and packages.

This is not urgent. Thoughts??

tarcadius commented 3 years ago

I think this is a really great idea. Backburner to be certain, but something to come back to. Thanks Tom!

tbarchyn commented 2 years ago

Master branch right now compiles with some minor mods. Tossing together a bare bones tkinter GUI.

tbarchyn commented 2 years ago

Proof of concept seems to work.

Screenshot video: https://www.dropbox.com/s/fm84ezds9edzb5t/LDAR_Sim_Desktop_proof_of_concept.MP4?dl=0

Program: https://www.dropbox.com/s/1tddoaahje90mt0/LDAR_Sim_Desktop.zip?dl=0

tbarchyn commented 2 years ago

Holding on revising the exe until some bugs are squashed in v2.0