-
-
Notifications
You must be signed in to change notification settings - Fork 254
Open
Description
pyoxidizer init-rust-project pyapp
I then modified src/main.rs :
#![windows_subsystem = "console"]
use pyembed::MainPythonInterpreter;
// Include an auto-generated file containing the default
// pyembed::OxidizedPythonInterpreterConfig 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::OxidizedPythonInterpreterConfig.
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()
let py = interp.acquire_gil().unwrap();
match py.eval( "print('hello, world')", None, None) {
Ok(_) => println!("python code executed successfully"),
Err(e) => println!("python error: {:?}", e),
}
0
}
Err(msg) => {
eprintln!("{}", msg);
1
}
}
};
// And exit the process according to code execution results.
std::process::exit(code);
}
but when running
pyoxidizer run
I get the same python REPL as without modification !
And also,
cargo run --features jemalloc build-mode-pyoxidizer-exe
fail with
Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
Python runtime state: core initialized
ModuleNotFoundError: No module named 'encodings'
That may be normal, but nothing tell me why in the doc.
I'm using ubuntu 20.04 and rust/cargo 1.47
Skehmatics and chris-laplante
Metadata
Metadata
Assignees
Labels
No labels