Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

embedding more than one python file #10

Open
UnixJunkie opened this issue May 12, 2023 · 5 comments
Open

embedding more than one python file #10

UnixJunkie opened this issue May 12, 2023 · 5 comments

Comments

@UnixJunkie
Copy link

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).

@mooreryan
Copy link
Owner

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.

@mooreryan
Copy link
Owner

mooreryan commented May 14, 2023

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.

@UnixJunkie
Copy link
Author

UnixJunkie commented May 14, 2023 via email

@UnixJunkie
Copy link
Author

I consider this question has been properly answered. I will try soon the proposed solution.

@UnixJunkie
Copy link
Author

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. :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants