[Tutor] Putting a Bow on It

Oscar Benjamin oscar.j.benjamin at gmail.com
Mon Feb 18 16:06:28 EST 2019


On Mon, 18 Feb 2019 at 13:41, Chip Wachob <wachobc at gmail.com> wrote:
>
> The code that I've written is entirely Python.  There are necessary libraries that go along with that, and, due to my inexperience, I am not 100% certain they are pure Python or not.  Some of the drivers from the IC manufacturer (FTDI) are .dll files that get installed on the machine, and I'm sure that's going to have to be a separate step.

Do you mean that the users will already need to run a separate
installer for the drivers which is already available somewhere? Or do
you mean that you want to bundle those DLLs yourself?

If you are bundling the DLLs then it's no longer pure Python and the
zipapp approach won't work (DLLs cannot be used from inside a zip
file). In that case py2exe/pyinstaller would be the only possible one
file solutions I know of - they also basically zip up your code but in
a self-extracting exe.

> I've been tooling around with PyInstaller over the last couple of days, and it seems to be getting me closer to what I would like.  Unfortunately, I seem to have hundreds of 'missing' modules.  I'm sure that something must be missing because I can't launch the .exe file that is created.  It looks like it is going to run, then it comes up and says it can't execute the script (not the exact words, but you get the idea).  I'm just not sure how to cull the 'necessary' modules from the ancillary ones.

Yeah, you can spend a long time going through that. I guess you've
probably already read this:
https://pyinstaller.readthedocs.io/en/v3.3.1/operating-mode.html#analysis-finding-the-files-your-program-needs
The suggestion there is to get everything working in one folder mode
before trying one file mode.

Before that though: have you got it working with a hello world type
Python script (no dependencies)?

--
Oscar


More information about the Tutor mailing list