[Python-Dev] Single-file Python executables (was: Computed Goto dispatch for Python 2)
chris.barker at noaa.gov
Thu May 28 20:11:36 CEST 2015
On Thu, May 28, 2015 at 10:32 AM, Ryan Gonzalez <rymg19 at gmail.com> wrote:
> py2exe tends to invoke DLL hell if you have various versions of VS or
> Office or both installed. Because Windows.
uh, yes -- Windows applications invoke dll hell......nothign to be done
> On May 28, 2015 11:23:57 AM CDT, Chris Barker <chris.barker at noaa.gov>
>> I'm confused:
>> Doesn't py2exe (optionally) create a single file executable?
>> And py2app on the Mac creates an application bundle, but that is
>> more-or-less the equivalent on OS-X (you may not even be able to have a
>> single file executable that can access the Window Manager, for instance)
>> Depending on what extra packages you need, py2exe's single file doesn't
>> always work, but last I tried, it worked for a fair bit (I think all of the
>> I don't know what PyInstaller or others create. And I have no idea if
>> there is a linux option -- but it seems like the standard of practice for
>> an application for linux is a bunch of files scattered over the system
>> anyway :-)
>> Yes, the resulting exe is pretty big, but it does try to include only
>> those modules and packages that are used, and that kind of optimization
>> could be improved in any case.
>> So is something different being asked for here?
>> Barry Warsaw wrote:
>> >> I do think single-file executables are an important piece to Python's long-term
>> Really? It seems to me that desktop development is dying. What are the
>> critical use-cases for a single file executable?
>> And I'd note that getting a good way to use Python to develop for iOS,
>> Android, and Mobile Windows is FAR more critical! -- maybe that's the same
>> problem ?
>> On Thu, May 28, 2015 at 8:39 AM, Donald Stufft <donald at stufft.io> wrote:
>>> On May 28, 2015 at 11:30:37 AM, Steve Dower (steve.dower at microsoft.com)
>>> > Donald Stufft wrote:
>>> > > Well Python 3.4.3 binary is 4kb for me, so you'd have that + your
>>> 1KB Python script + whatever
>>> > other pieces you need.
>>> > For contrast, here are the things you need on Windows to be able to
>>> get to an interactive
>>> > prompt (I don't know how other platforms get this down to 4KB...):
>>> > * python.exe (or some equivalent launcher) 39KB
>>> > * python35.dll 3,788KB
>>> > * vcruntime140.dll 87KB (the rest of the CRT is about 1MB, but is not
>>> > so doesn't count here)
>>> > * 26 files in Lib 343KB
>>> > This gets you to ">>>", and basically everything after that is going
>>> to fail for some reason.
>>> > That's an unavoidable 4,257KB.
>>> > The rest of the stdlib adds another ~16MB once you exclude the test
>>> suite, so a fully functioning
>>> > Python is not cheap. (Using compressed .pyc's in a zip file can make a
>>> big difference here
>>> > though, assuming you're willing to trade CPU for HDD.)
>>> > Cheers,
>>> > Steve
>>> You don’t need a "fully functioning Python" for a single file binary,
>>> you only
>>> need enough to actually run your application. For example, if you're
>>> an application that can download files over HTTP, you don't need to
>>> parts of the stdlib like xmlrpc, pickle, shelve, marshall, sqlite, csv,
>>> mailcap, mailbox, imaplib, nntplib, etc.
>>> Of course deciding which pieces you include in the zip file you're
>>> to the end of Python is up to whatever tool builds this executable which
>>> doesn't need to be part of Python itself. If Python itself gained the
>>> to operate in that manner than third party tools could handle trying to
>>> do the
>>> optimizations where it only includes the things it actually needs in the
>>> and excludes things it doesn't. The key thing here is that since you're
>>> a single file binary, you don't need to have a Python which is suitable
>>> execute random Python code, you only need one that is suitable to
>>> execute this
>>> particular code so you can specialize what that includes.
>>> Donald Stufft
>>> PGP: 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA
>>> Python-Dev mailing list
>>> Python-Dev at python.org
>> Christopher Barker, Ph.D.
>> Emergency Response Division
>> NOAA/NOS/OR&R (206) 526-6959 voice
>> 7600 Sand Point Way NE (206) 526-6329 fax
>> Seattle, WA 98115 (206) 526-6317 main reception
>> Chris.Barker at noaa.gov
>> Python-Dev mailing list
>> Python-Dev at python.org
>> Unsubscribe: https://mail.python.org/mailman/options/python-dev/rymg19%40gmail.com
> Sent from my Android device with K-9 Mail. Please excuse my brevity.
Christopher Barker, Ph.D.
Emergency Response Division
NOAA/NOS/OR&R (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception
Chris.Barker at noaa.gov
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Python-Dev