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:
prog.py: (with following three  lines)
import mod1
if __name__ == "__main__":
    mod1.hello()

mod1.py: (with following two line)
def hello():
    print("hello old world")

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

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

and I recompile with "PYTHONHASHSEED=2 pyinstaller prog.py"
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 https://groups.google.com/d/msgid/pyinstaller/e2623354-d670-4160-a3a9-6f789409fa7fn%40googlegroups.com.