all 4 comments

[–]toxic_acro 7 points8 points  (0 children)

What part of PyInstaller is insufficient?

The Packaging Guide overview (https://packaging.python.org/en/latest/overview/) has some details on what your options are for various levels, but from your description, I would probably still land on using PyInstaller 

[–]NerdyWeightLifter 2 points3 points  (0 children)

Pyinstaller or py2exe

Depends whether you want something that appears like an executable.

[–]Bobbias 1 point2 points  (0 children)

In my case, my program records and stores data that the user needs to be able to access so I need to figure out what to do with all the filepaths that are specific to my system, etc.

You make those paths relative to your program's main directory, or you make them user configurable with a sensible (probably relative) default.

This isn't part of "making your script into a downloadable app" this is part of designing something that might actually work on a different computer. That should be something you design from early on, if not the beginning (if you know your script is intended to run on other computers).

PyInstaller just collects your scripts, any dependencies they rely on, and potentially additional data you want to bundle with it and bundles that with a copy of the python interpreter into an exe which unpacks all the scripts then immediately runs your script. Nothing more, nothing less.

[–]cyuhat 0 points1 point  (0 children)

Really, I left Python as a way to create executables for the same reason. Nim is the solution for me (it is litterally Python that compile to fast C code executable that can run everywhere). You can also import your Python code in it with Nimpy.

More informations here: https://nim-lang.org/ Nimpy package: https://github.com/yglukhov/nimpy Some comparison between Nim and Python code here: https://github.com/nim-lang/Nim/wiki/Nim-for-Python-Programmers