pyo3
pyo3 copied to clipboard
Expose a way to access the `PYO3_CONFIG_FILE` values
Some users have specific use cases where they would benefit from being able to access the PYO3_CONFIG_FILE values in some form from the pyo3 crate.
I generally wouldn't advise this, as a lot of these config files (such as library path) are unique to the build environment so wouldn't have any useful meaning in binaries intended to be deployed on other systems.
See original comment from #2000 below.
If anyone has need for this, I'm happy to help review designs and implementation.
It would be nice to have access to the library path from PYO3_CONFIG (or all values) but that is not a problem for me.
E.g. it could be based off the
PYO3_CONFIGbuild mechanism - maybe we could havepyo3_config_var!("lib_path"). Or maybe justpyo3_lib_path!(). I'm open to hearing ideas on what's better.
An alternative could be a module filled with many const values, similar to what built does.
Originally posted by @jonasbb in https://github.com/PyO3/pyo3/issues/2000#issuecomment-979985994
This seems related to the request here https://github.com/pyca/cryptography/pull/6695#discussion_r767289574 as well?
@messense can correct me but it seems they want to compile another static lib with the same version of Python PyO3 is using as part of a build script.
The other piece missing there is that the include path is not part of the pyo3_build_config::InterpreterConfig. It seems weird to add that if pyo3 itself doesn't use it, but I can come up with some alternative ideas:
- expose
run_python_script(or implement it onInterpreterConfig), which is right now duplicated in thatbuild.rs - create something like
Sysconfigdata::from_interpreter_config
What we want in pyca/cryptography#6695 are:
- A way to get the currently detected Python interpreter for running a Python script file and determining the interpreter kind for example disable ABI3 if it's PyPy.
- Get Python
includefile path from sysconfig
An InterpreterConfig with a run_python_script method sounds reasonable to me.