Python functions in classes are executed by the Python that is executing
bitbake, which doesn't have access to the modules in the native sysroot
(and won't, as any compiled modules in there are linked against the native
python, not the host python).

You can solve this by either mandating python-cryptography on the host, or
writing a standalone script that is executed using nativepython (which is
the python built by python-native).

Ross

On 30 November 2017 at 00:09, <aaron_wri...@selinc.com> wrote:

> I have a python function that I've added to PACKAGEFUNCS in a bbclass, and
> I want to use python-cryptography in that function. However, sys.path
> doesn't seem setup to allow this import. I'm curious to know the best known
> method for using python modules that are outside of  <LAYER>/lib directory.
> Should I just append STAGING_LIBDIR_NATIVE to sys.path?
>
> python do_stuff() {
>     import cryptography # <-- this fails
>
>     # Other stuff...
> }
>
> python () {
>     if (not bb.data.inherits_class("native", d) and
>         not bb.data.inherits_class("cross", d)):
>
>         d.appendVar("PACKAGEFUNCS", " do_stuff")
>         d.appendVarFlag(
>             "do_package",
>             "depends",
>             " python-cryptography-native:do_populate_sysroot")
> }
> --
> _______________________________________________
> yocto mailing list
> yocto@yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto
>
>
-- 
_______________________________________________
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto

Reply via email to