Hi, Am 24.04.2012 21:43, schrieb Don Dwiggins:
Please do not top quote. Thanks. > This seems in a way like an extension of the MERGE idea. If you're > going to be installing many PyI-built executables on a target machine, > you'd rather not have to "pay double/triple/..." for all the > supporting stuff. Did you know the PyInstaller can import modules from .pyz files placed in the filesystem, too? So you can but your common stuff there. Just add the PYZ to the Collect() instead of the Exe(). (Maybe some additional bootstrap module is required. But this should be simple.) > (Thinking out loud...) In a scenario like this, it might be worth > defining a "target machine configuration" file that would be used both > by the builder and bootloader. The former These "target machine config files" are already here: The .spec files. As these are simple Python scripts, you can add there whatever you want. (I admit, efficiently excluding all e.g. modules from the standard lib requires extending the Analysis class. But even this can be done in the .spec file and should not be too complicated.) But what is this aiming to? If you want to reduce the number of files to be transferred, you should go for some common modules library (aka site-packages) and deliver you application without any dependency. Otherwise you'd end up in a software distribution problem -- which PyInstaller definitely is not the right tool for. Or you are aiming for common PYZ files as described above. > Again, this assumes installing on a target machine where you > (actually, the installer that you built with NSIS or whatever) might > have limited control -- enough to install your applications, but not > necessarily enough to say "OK, let's just install Python x.y, wxPython > z.w, etc". For me this sounds as being a job for another tool, not for PyInstaller. IMHO PyInstaller is the wrong tool for this job. What you are talking about is already there. It's called e.g. buildout. Why do you want all this being reimplemented into PyInstaller? At a first glance, it sounds great to get all the dependencies solved any only included these. But in your scenario, this will fail as soon as Application One requires foo.bar (but not foo.baz) and Application Two requires foo.baz. In this case installing Two would required updating One, too. Why not just recompile Python to install into some User directory. (Probably it's enough to change the installer.) Then use pip or some other installer to get the dependencies installed. To summarize: Either your aims can already been reached with PyInstaller's current features -- or it's another tools job. -- Schönen Gruß - Regards Hartmut Goebel Dipl.-Informatiker (univ.), CISSP, CSSLP Goebel Consult Spezialist für IT-Sicherheit in komplexen Umgebungen http://www.goebel-consult.de Monatliche Kolumne: http://www.cissp-gefluester.de/ Goebel Consult ist Mitglied bei http://www.7-it.de
smime.p7s
Description: S/MIME Kryptografische Unterschrift
