On 10 Jul 2018, at 19:12, Alberto Garcia <agarciaillera@gmail.com> wrote:

Thank you Barry,

but I see that the the way yo do it is dropping files to disk. I want to prevent any file to touch the disk except for the actual binary that has everything embedded in it.

What file are you refering to? The zip is built onto the elf/exe.

BTW this is all off topic for python ideas. You might want to take this offline.



On Tue, Jul 10, 2018 at 10:25 AM Barry <barry@barrys-emacs.org> wrote:

On 9 Jul 2018, at 21:11, Alberto Garcia <agarciaillera@gmail.com> wrote:


thank you for your response. I've downloaded the sources but I couldn't find any documentation. In addition I see that there is not a single C/C++ file. What I want to do is calling python from C.
Am I missing something?

You need to grab the sources with an svn checkout. I guess you grabbed the binary kit.


Docs are in here.




On Mon, Jul 9, 2018 at 12:20 PM Barry Scott <barry@barrys-emacs.org> wrote:
I think you might find Gordon McMillian's installer interesting to look at. It has a lot
f the tech that I think you are looking for.

Works up to python 2.7. I ended up taking over when Gordon stopped maintaining
it and kept it going up to python 2.7. In principle the same ideas could be made to
work in python 3 I believe.

The zip file is appended to the end of the .EXE or unix ELF fie.
The boot strap knows how to import form the ZIP at the end of
the binary.

It also has a way to split out the .SO/.DLL files from the ZIP and
allow them to be loaded. Single EXE mode.

There are docs that explain how it works in the sources.


On 9 Jul 2018, at 19:40, Alberto Garcia <agarciaillera@gmail.com> wrote:

Does the zip need to reside in disk to be loaded. Or can it be loaded from memory? I don't want it to be loaded from disk but from Memory

On Mon, Jul 9, 2018 at 9:59 AM Alberto Garcia <agarciaillera@gmail.com> wrote:
Ohhhhhhhh  I guess you mean this:

On Mon, Jul 9, 2018 at 9:48 AM Alberto Garcia <agarciaillera@gmail.com> wrote:
Thank you for your response,

I was thinking on creating that zip file with the content of the Lib folder and having my c code to download it over the network and have it in memory. 
I guess that the zip file should have no compression at all right?

When you say that I need to use the cx_freeze approach what do you mean? Can you point me to where they do that? 

And why changing sys.path again to the executable again? Which part of the executable? 

I'll put my efforts in this.

Thank you 

On Mon, Jul 9, 2018 at 7:16 AM Nick Coghlan <ncoghlan@gmail.com> wrote:
On 9 July 2018 at 03:10, Alberto Garcia <agarciaillera@gmail.com> wrote:
> Hey there,
> Yes, the part of having the pyd modules built in in library is already done.
> I followed the instructions in the README. What I would like to know now is
> how to embed the non frozen python (py) modules. Can you guys please point
> me in the right direction.

The gist is to:

1. take the entire Lib directory and put it in a zip archive
2. use the approach demonstrated in cx_freeze to point sys.path in
your static executable at that zip archive
3. adjust your C code to point sys.path back at the executable itself,
and then combine your executable and the zip archive into a single
contiguous file (similar to what zipapp does with it's helper script
and app archive)

There are likely to still be rough edges when doing that, since this
isn't a well tested configuration. When all else fails, find the part
of the source code responsible for any error messages you're seeing,
and try to work out if there's a setting you can tweak to avoid
hitting that code path.


Nick Coghlan   |   ncoghlan@gmail.com   |   Brisbane, Australia
Alberto García Illera

GPG Public Key: https://goo.gl/twKUUv
Alberto García Illera

GPG Public Key: https://goo.gl/twKUUv

Alberto García Illera

GPG Public Key: https://goo.gl/twKUUv
Python-ideas mailing list
Code of Conduct: http://python.org/psf/codeofconduct/

Alberto García Illera

GPG Public Key: https://goo.gl/twKUUv

Alberto García Illera

GPG Public Key: https://goo.gl/twKUUv