Including Python3 modules in generated SDK do not work (pandas, dunfell)

Daniel Adolfsson


I have been using Yocto for several years now and I really appreciate all the hard work you all are putting into this project!

I have up until now been able to find documentation or answers to questions that cover my issues. But this time I have not been able to find my way, maybe I am using the wrong search terms.

Some background,
Running on a custom embedded device, powered by a AM3552 soc, currently running Dunfell.

I have a recipe that compiles a software using CMake. CMake in turn uses a Python3 script in the build step to generate some source files based on a CSV file. That script uses the python3-pandas library.

In my recipe I include python3-pandas as a DEPENDS

# For some reason python3-pandas-native does not pull in its dependencies, pytz and dateutil.
# The same is true for dateutil which depend on six
DEPENDS += "python3-pandas-native python3-pytz-native python3-dateutil-native python3-six-native"

This works great for building the firmware image file.

But in the generated SDK or Extensible SDK the modules are not available.

$ which python3

$ python3
Python 3.8.2 (default, Feb 25 2020, 10:39:28)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'pandas'

I have also tried using the extensible sdk but i get another error when trying devtool

devtool modify recipie fails with python error: Exception: ModuleNotFoundError: No module named '_sysconfigdata'

I am unsure how to continue, where should I look for the issue? I am assuming that "depending" on a native python package would cause it to be included in the SDK..? even thugh it is a python dependency?
This has worked for other recipies (non-python) dependencies.
It "feels" like somehow the python3 "install" in the sdk is not identical to the one that is used when building the images.

Best Regards

Daniel Adolfsson