@@ -21,11 +21,11 @@ pub(crate) fn init_importlib_base(vm: &mut VirtualMachine) -> PyResult<PyObjectR
21
21
import_builtin ( vm, "_weakref" ) ?;
22
22
23
23
let importlib = thread:: enter_vm ( vm, || {
24
- let importlib = import_frozen ( vm, "_frozen_importlib" ) ?;
25
- let impmod = import_builtin ( vm , "_imp" ) ?;
26
- let install = importlib . get_attr ( "_install" , vm ) ?;
27
- vm. invoke ( & install, ( vm. sys_module . clone ( ) , impmod ) ) ?;
28
- Ok ( importlib )
24
+ let bootstrap = import_frozen ( vm, "_frozen_importlib" ) ?;
25
+ let install = bootstrap . get_attr ( "_install" , vm ) ?;
26
+ let imp = import_builtin ( vm , "_imp" ) ?;
27
+ let exc = vm. invoke ( & install, ( vm. sys_module . clone ( ) , imp ) ) ?;
28
+ Ok ( bootstrap )
29
29
} ) ?;
30
30
vm. import_func = importlib. get_attr ( identifier ! ( vm, __import__) . to_owned ( ) , vm) ?;
31
31
Ok ( importlib)
@@ -81,7 +81,12 @@ pub fn make_frozen(vm: &VirtualMachine, name: &str) -> PyResult<PyRef<PyCode>> {
81
81
}
82
82
83
83
pub fn import_frozen ( vm : & VirtualMachine , module_name : & str ) -> PyResult {
84
- make_frozen ( vm, module_name) . and_then ( |frozen| import_codeobj ( vm, module_name, frozen, false ) )
84
+ make_frozen ( vm, module_name) . and_then ( |frozen| {
85
+ let module = import_codeobj ( vm, module_name, frozen, false ) ?;
86
+ // TODO: give a correct origname here
87
+ module. set_attr ( "__origname__" , vm. ctx . new_str ( module_name. to_owned ( ) ) , vm) ?;
88
+ Ok ( module)
89
+ } )
85
90
}
86
91
87
92
pub fn import_builtin ( vm : & VirtualMachine , module_name : & str ) -> PyResult {
0 commit comments