'Python3 cythonize from yocto bitbake recipe problem
Let me say this recipe works just fine on our environment with python 2.7, but on new environment where python3 is not. I have no clue why.
Folder/files structure:
zurka-plugin-extensions-EstTV-py3 ---> Folder
setup.py
dialog.py
main.py
plugin.pyc
__init__.pyc
Esttv.png
BB recipe:
DESCRIPTION = "EstTV"
MAINTAINER = "Est"
PV = "4.0"
PR = "r0"
require conf/license/license-gplv2.inc
DEPENDS = "python3 python3-cython python3-cython-native"
RDEPENDS:${PN} = " python3-requests python3-multiprocessing python3-image python3-json ffmpeg "
RRECOMMENDS:${PN} = " python3-pillow nesto-plugin-systemplugins-kauz "
#inherit pkgconfig lib_package setuptools distutils #py2 - working solution
inherit pkgconfig lib_package setuptools3 #py3??????
SRC_URI = "file://setup.py \
file://dialog.py \
file://main.py \
file://__init__.pyc \
file://plugin.pyc \
file://Esttv.png \
"
S = "${WORKDIR}"
do_compile () {
python setup.py build_ext --inplace
}
do_install () {
install -d ${D}${libdir}/zurka/python/Plugins/Extensions/EstTV
install ${WORKDIR}/*.pyc ${D}${libdir}/zurka/python/Plugins/Extensions/EstTV/
install -m 0755 ${S}/dialog.so ${D}${libdir}/zurka/python/Plugins/Extensions/EstTV/
install -m 0755 ${S}/main.so ${D}${libdir}/zurka/python/Plugins/Extensions/EstTV/
}
Cythonize script (setup.py):
from distutils.core import setup
from Cython.Build import cythonize
def cythonize_modules():
return cythonize([
"dialog.py",
"main.py",
],
language_level=3, # python3
)
setup(ext_modules=cythonize_modules())
Error:
ERROR: zurka-plugin-extensions-EstTV-py3-4.0-r0 do_fetch: Fetcher failure:
Unable to find file file://__init__.pyc anywhere.
The paths that were searched were:
/mnt/h4/7.0/meta-mi/recipes-plugins/zurka-plugin-extensions-EstTV-py3-4.0/mi
/mnt/h4/7.0/meta-mi/recipes-plugins/zurka-plugin-extensions-EstTV-py3/mi
/mnt/h4/7.0/meta-mi/recipes-plugins/files/mi
/mnt/h4/7.0/meta-mi/recipes-plugins/zurka-plugin-extensions-EstTV-py3/
etc...
As you can see __init__.pyc is inside folder zurka-plugin-extensions-EstTV-py3.
What about inherit, when i put setuptools (without 3) error is different; Could not inherit file classes/setuptools.bbclass.
When i put setuptools3 error is; missing file (__init__.pyc).
When i put distutils, error is different again (i can't remember which one exactly).
So, what i can do next? Thank you!
EDIT:
after i change do compile line from python setup.py build_ext --inplace to python3 ${S}/setup.py build_ext --inplace now i have another type of error.
Log data follows:
| DEBUG: Executing shell function do_compile
| Traceback (most recent call last):
| File "/mnt/h4/7.0/builds/ja2/release/sf3000/tmp/work/cortexa15hf-neon-vfpv4-oe-linux-gnueabi/zurka-plugin-extensions-EstTV-py3/5.0-r0/setup.py", line 5, in <module>
| ext_modules = cythonize("dialog.py")
| File "/mnt/h4/7.0/builds/ja2/release/sf3000/tmp/work/cortexa15hf-neon-vfpv4-oe-linux-gnueabi/zurka-plugin-extensions-EstTV-py3/5.0-r0/recipe-sysroot-native/usr/lib/python3.9/site-packages/Cython/Build/Dependencies.py", line 965, in cythonize
| module_list, module_metadata = create_extension_list(
| File "/mnt/h4/7.0/builds/ja2/release/sf3000/tmp/work/cortexa15hf-neon-vfpv4-oe-linux-gnueabi/zurka-plugin-extensions-EstTV-py3/5.0-r0/recipe-sysroot-native/usr/lib/python3.9/site-packages/Cython/Build/Dependencies.py", line 815, in create_extension_list
| for file in nonempty(sorted(extended_iglob(filepattern)), "'%s' doesn't match any files" % filepattern):
| File "/mnt/h4/7.0/builds/ja2/release/sf3000/tmp/work/cortexa15hf-neon-vfpv4-oe-linux-gnueabi/zurka-plugin-extensions-EstTV-py3/5.0-r0/recipe-sysroot-native/usr/lib/python3.9/site-packages/Cython/Build/Dependencies.py", line 114, in nonempty
| raise ValueError(error_msg)
| ValueError: 'dialog.py' doesn't match any files
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
