use pyembed::MainPythonInterpreter; // Include an auto-generated file containing the default // `pyembed::PythonConfig` derived by the PyOxidizer configuration file. // // If you do not want to use PyOxidizer to generate this file, simply // remove this line and instantiate your own instance of // `pyembed::PythonConfig`. include!(env!("PYOXIDIZER_DEFAULT_PYTHON_CONFIG_RS")); fn main() { // The following code is in a block so the MainPythonInterpreter is // destroyed in an orderly manner, before process exit. let code = { // Load the default Python configuration as derived by the PyOxidizer // config file used at build time. let config = default_python_config(); // Construct a new Python interpreter using that config, handling any // errors from construction. match MainPythonInterpreter::new(config) { Ok(mut interp) => { // And run it using the default run configuration as specified // by the configuration. If an uncaught Python // exception is raised, handle it. // This includes the special SystemExit, which is a request to // terminate the process. interp.run_as_main() } Err(msg) => { eprintln!("{}", msg); 1 } } }; // And exit the process according to code execution results. std::process::exit(code); }