A quick fix may be to add a target python3 dependency to your recipe, yes
ugly, but I can't figure out how to provide target python configuration to
native python used in the context of building target recipes otherwise.

Alex


On Thu, 12 Nov 2020 at 10:49, Alexander Kanavin <alex.kana...@gmail.com>
wrote:

> On Thu, 12 Nov 2020 at 02:23, Glenn Stroz via lists.openembedded.org
> <gstroz=uber....@lists.openembedded.org> wrote:
>
>> 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?
>>
>
> Can you share the exact context where this is happening? Is your script
> coming from a recipe and can you show that recipe?
>
> Alex
>
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#144498): 
https://lists.openembedded.org/g/openembedded-core/message/144498
Mute This Topic: https://lists.openembedded.org/mt/78197661/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to