main.rs
39 lines
| 1.4 KiB
| application/rls-services+xml
|
RustLexer
Gregory Szorc
|
r45128 | 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() { | ||||
Martin von Zweigbergk
|
r46195 | // The following code is in a block so the MainPythonInterpreter is | ||
// destroyed in an orderly manner, before process exit. | ||||
Gregory Szorc
|
r45128 | let code = { | ||
Martin von Zweigbergk
|
r46195 | // Load the default Python configuration as derived by the PyOxidizer | ||
// config file used at build time. | ||||
Gregory Szorc
|
r45128 | let config = default_python_config(); | ||
Martin von Zweigbergk
|
r46195 | // Construct a new Python interpreter using that config, handling any | ||
// errors from construction. | ||||
Gregory Szorc
|
r45128 | match MainPythonInterpreter::new(config) { | ||
Ok(mut interp) => { | ||||
Martin von Zweigbergk
|
r46195 | // 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. | ||||
Gregory Szorc
|
r45128 | interp.run_as_main() | ||
} | ||||
Err(msg) => { | ||||
eprintln!("{}", msg); | ||||
1 | ||||
} | ||||
} | ||||
}; | ||||
// And exit the process according to code execution results. | ||||
std::process::exit(code); | ||||
} | ||||