Hi all,
We've been upgrading our work to Dunfell and have encountered an issue with
python3-native.
One of our python3-native scripts uses pydoc and that in turn eventually
pulls in python's sysconfig. However, this is failing to import with the
following stack trace:
```
import pydoc
File
"/home/gstroz/.cache/avos/_avos_gstroz/avos/yocto-dunfell/build/tmp/work/corei7-64-poky-linux/ebpf-daemon/2020.282.17-r0/recipe-sysroot-native/usr/lib/python3.8/pydoc.py",
line 366, in <module>
class Doc:
File
"/home/gstroz/.cache/avos/_avos_gstroz/avos/yocto-dunfell/build/tmp/work/corei7-64-poky-linux/ebpf-daemon/2020.282.17-r0/recipe-sysroot-native/usr/lib/python3.8/pydoc.py",
line 396, in Doc
def getdocloc(self, object, basedir=sysconfig.get_path('stdlib')):
File
"/home/gstroz/.cache/avos/_avos_gstroz/avos/yocto-dunfell/build/tmp/work/corei7-64-poky-linux/ebpf-daemon/2020.282.17-r0/recipe-sysroot-native/usr/lib/python3.8/sysconfig.py",
line 519, in get_path
return get_paths(scheme, vars, expand)[name]
File
"/home/gstroz/.cache/avos/_avos_gstroz/avos/yocto-dunfell/build/tmp/work/corei7-64-poky-linux/ebpf-daemon/2020.282.17-r0/recipe-sysroot-native/usr/lib/python3.8/sysconfig.py",
line 509, in get_paths
return _expand_vars(scheme, vars)
File
"/home/gstroz/.cache/avos/_avos_gstroz/avos/yocto-dunfell/build/tmp/work/corei7-64-poky-linux/ebpf-daemon/2020.282.17-r0/recipe-sysroot-native/usr/lib/python3.8/sysconfig.py",
line 172, in _expand_vars
_extend_dict(vars, get_config_vars())
File
"/home/gstroz/.cache/avos/_avos_gstroz/avos/yocto-dunfell/build/tmp/work/corei7-64-poky-linux/ebpf-daemon/2020.282.17-r0/recipe-sysroot-native/usr/lib/python3.8/sysconfig.py",
line 558, in get_config_vars
_init_posix(_CONFIG_VARS)
File
"/home/gstroz/.cache/avos/_avos_gstroz/avos/yocto-dunfell/build/tmp/work/corei7-64-poky-linux/ebpf-daemon/2020.282.17-r0/recipe-sysroot-native/usr/lib/python3.8/sysconfig.py",
line 428, in _init_posix
_temp = __import__(name, globals(), locals(), ['build_time_vars'], 0)
ModuleNotFoundError: No module named '_sysconfigdata'
```
I did a little digging and the following commit seems to reference related
work:
https://github.com/openembedded/openembedded-core/commit/02714c105426b0d687620913c1a7401b386428b6
I see that there is a patch added which adds the following to
`sysconfig.py`:
```
if 'STAGING_LIBDIR' in os.environ:
sys.path.append(os.environ['STAGING_LIBDIR']+'/python-sysconfigdata')
```
However, STAGING_LIBDIR does not contain this path:
```
ls
/home/gstroz/.cache/avos/_avos_gstroz/avos/yocto-dunfell/build/tmp/work/corei7-64-poky-linux/ebpf-daemon/2020.282.17-r0/recipe-sysroot/usr/lib/python-sysconfigdata
ls: cannot access
'/home/gstroz/.cache/avos/_avos_gstroz/avos/yocto-dunfell/build/tmp/work/corei7-64-poky-linux/ebpf-daemon/2020.282.17-r0/recipe-sysroot/usr/lib/python-sysconfigdata':
No such file or directory
```
It appears as if this should really be pointing to STAGING_LIBDIR_NATIVE
which does exist:
```
ls
/home/gstroz/.cache/avos/_avos_gstroz/avos/yocto-dunfell/build/tmp/work/corei7-64-poky-linux/ebpf-daemon/2020.282.17-r0/recipe-sysroot-native/usr/lib/python-sysconfigdata
_sysconfigdata.py
```
The referenced commit made efforts to combine the native and cross python3
bbclass files into one. However, I think this may be something that needs
to be treated differently.
Anyone have any thoughts on how to proceed?
-Glenn
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#144484):
https://lists.openembedded.org/g/openembedded-core/message/144484
Mute This Topic: https://lists.openembedded.org/mt/78197661/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-