Patching one pyc file in the executable (the PYZ) file

Previous Topic Next Topic
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

Patching one pyc file in the executable (the PYZ) file

Gelonida N
I'm planning to create a huge executable directory and install it on some devices.

Imagine, that lateron I discover a bug in one of  my python modules.
Is there any way to transfer/copy only the modified byte code and replace the original byte code with the new one.

The reason I want to do this is, that in my context bandwidth is very expensive and I'd like to patch the code remotely.

Example: I have a project with two files: (with following three  lines)
import mod1
if __name__ == "__main__":
    mod1.hello() (with following two line)
def hello():
    print("hello old world")

Now I use "PYTHONHASHSEED=2 pyinstaller" to create my directory which I copy to my device

Now I modify
def hello():
    print("hello new world")

and I recompile with "PYTHONHASHSEED=2 pyinstaller"
The full directory has (tared and gzipped) a size of about 1M
The file dist/prog/prog has a size of about 1M

with pyi-archive_viewer I can extract `PYZ-00.pyz` out of my executable dist/prog/prog
In PYZ-00.pyz I can find and extract mod1 which uses only 133 bytes.

Now if I copy that file to my device, how could I update the old
/prog/prog such, that it has the mew PYZ-00.pyz:mod1 byte code.

What code could I use to decompose, what code could I use to reassemble after having replaced one specific file (module)?

You received this message because you are subscribed to the Google Groups "PyInstaller" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit