ocaml_python_bindgen
ocaml_python_bindgen copied to clipboard
embedding more than one python file
Just an idea. Currently, I have one python file that I write to interface w/ ocaml (let's call it itf.py). I.e. the ocaml side only calls functions defined in this file. However, this said file may rely on other python files in the same directory to implement complex things.
It would be nice if we can embed in some way those other files too.
Currently, I had to include by hand the other files into itf.py. But, I hate to do this, I just duplicated code, if there are some bugs, I will need to correct in two places from now on.
Do you understand my need?
Would it be doable?
I ~could~ (should?) create a python library containing all those other files. But then, the ocaml exe will rely on this library to be installed at runtime. In terms of deployment, it would be nicer is the ocaml exe can embed everything needed (i.e. itf.py plus all its required python files dependencies).
This is a sort of hacky solution, but do you know about stickytape? It is a script that allows you to "rollup" all the imported modules of your python program into a single mega script. Then you (I think) should probably be able to use the mega-script as your interface instead of your original interface.
Check this example out: https://github.com/mooreryan/pyml_bindgen_stickytape_example
The executable that it generates is movable...it works on my computer from any directory, and even if I move it on to a different server, without having to mess around with the PYTHONPATH
or anything.
Ok, very interesting. No, I did not know about this. It might do the trick.
On Sun, May 14, 2023 at 2:49 PM Ryan Moore @.***> wrote:
Check this example out: https://github.com/mooreryan/pyml_bindgen_stickytape_example
The executable that it generates is movable...it works on my computer from any directory, and on a different server, without having to mess around with the PYTHONPATH or anything.
— Reply to this email directly, view it on GitHub https://github.com/mooreryan/ocaml_python_bindgen/issues/10#issuecomment-1546814197, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAFUFAA3EWQA634SN5O3OGTXGBW6TANCNFSM6AAAAAAX7KHPJA . You are receiving this because you authored the thread.Message ID: @.***>
I consider this question has been properly answered. I will try soon the proposed solution.
I think, this suggestion is great, but I will just use the unix cat command and achieve the same effect in my gen_bindings.sh which invokes pyml_bindgen. :)