setup.py no such file or directory


Bel Hadj Salem Talel <bhstalel@...>
 

Hi Community,

I have a python module which I downloaded from github containing a setup.py as all python modules.
When I create a recipe with devtool it compiles correctly with no problem, but when I copy paste the same recipe source from workspace recipes to an official meta recipe I got this error :
/media/talel/data/menzu-zeus/menzu/tmp/work/aarch64-poky-linux/python3-wirepas_messaging/1.4.0-r0/recipe-sysroot-native/usr/bin/python3-native/python3: can't open file 'setup.py': [Errno 2] No such file or directory
Here is the recipe by devtool:

##############

SUMMARY = "Wirepas gateway transport service that connects the local dbus to a remote MQTT broker."
HOMEPAGE = "https://github.com/wirepas/gateway"
LICENSE = "Apache"
LIC_FILES_CHKSUM = "file://LICENSE;md5=cb6bb17b0d0cca188339074207e9f4d8"
SRC_URI = "file:///media/talel/data/multigate/multigate/meta-wirepas/recipes-wirepas/wirepas-gateway/files/wirepas_gateway-${PV}/wp-gateway.zip"
inherit setuptools3
RDEPENDS_${PN} += "python3-pyyaml python3-grpcio python3-paho-mqtt python3-pydbus"
RDEPENDS_${PN} += "python3-core python3-datetime python3-io python3-json python3-logging python3-netclient python3-paho-mqtt python3-pydbus python3-pygobject python3-pyyaml python3-threading"
DEPENDS += "systemd"

##############

I copy paste the same recipe source to a recipe under meta-wirepas/recipes-wirepas of mine, and copied the SRC_URI = "file:///media/talel/data/multigate/multigate/meta-wirepas/recipes-wirepas/wirepas-gateway/files/wirepas_gateway-${PV}/wp-gateway.zip" zip file under "files", and I got the error.

I don't know what is the difference, I think devtool created the recipe with .bbappend containing :

inherit externalsrc
EXTERNALSRC = "/media/talel/data/menzu-zeus/menzu/workspace/sources/wirepas-gateway"
EXTERNALSRC_BUILD = "/media/talel/data/menzu-zeus/menzu/workspace/sources/wirepas-gateway"

######

Is it the source of the problem, or how can I fix the issue ?

Thanks, Talel




Quentin Schulz
 

Hi Talel,

On Fri, Sep 25, 2020 at 08:12:11AM -0700, Bel Hadj Salem Talel wrote:
Hi Community,

I have a python module which I downloaded from github containing a setup.py as all python modules.
When I create a recipe with devtool it compiles correctly with no problem, but when I copy paste the same recipe source from workspace recipes to an official meta recipe I got this error :


/media/talel/data/menzu-zeus/menzu/tmp/work/aarch64-poky-linux/python3-wirepas_messaging/1.4.0-r0/recipe-sysroot-native/usr/bin/python3-native/python3:
can't open file 'setup.py': [Errno 2] No such file or directory
Use devtool finish when you're done with a recipe you started with
devtool add, that should do it.

Quentin


Quentin Schulz
 

On Fri, Sep 25, 2020 at 08:12:11AM -0700, Bel Hadj Salem Talel wrote:
Hi Community,

I have a python module which I downloaded from github containing a setup.py as all python modules.
When I create a recipe with devtool it compiles correctly with no problem, but when I copy paste the same recipe source from workspace recipes to an official meta recipe I got this error :


/media/talel/data/menzu-zeus/menzu/tmp/work/aarch64-poky-linux/python3-wirepas_messaging/1.4.0-r0/recipe-sysroot-native/usr/bin/python3-native/python3:
can't open file 'setup.py': [Errno 2] No such file or directory
Here is the recipe by devtool:

##############

SUMMARY = "Wirepas gateway transport service that connects the local dbus to a remote MQTT broker."
HOMEPAGE = "https://github.com/wirepas/gateway"
LICENSE = "Apache"
LIC_FILES_CHKSUM = "file://LICENSE;md5=cb6bb17b0d0cca188339074207e9f4d8"
SRC_URI = "file:///media/talel/data/multigate/multigate/meta-wirepas/recipes-wirepas/wirepas-gateway/files/wirepas_gateway-${PV}/wp-gateway.zip"
If your recipe is in:
/media/talel/data/multigate/multigate/meta-wirepas/recipes-wirepas/wirepas-gateway/
and wp-gateway.zip is in:
/media/talel/data/multigate/multigate/meta-wirepas/recipes-wirepas/wirepas-gateway/files/wirepas_gateway-1.4.0
just put:
SRC_URI = "file://wirepas_gateway-${PN}/wp-gateway.zip"

I'd suggest putting your .zip file in:
/media/talel/data/multigate/multigate/meta-wirepas/recipes-wirepas/wirepas-gateway/wirepas_gateway-1.4.0
(note the missing files directory), in which case, your SRC_URI would
be:
SRC_URI = "file://wp-gateway.zip"

Also... This looks like you're taking code from
https://github.com/wirepas/gateway ? Have you thought of using the git
repo directly? e.g. devtool add python3-wirepas-gateway
https://github.com/wirepas/gateway.git?

It'll use the latest commit in master but it's changeable, and it is way
more maintainable IMO compared to a tarball you manually download every
now and then.

Please do NOT use _ in your recipe filename, so rename your recipe to
python3-wirepas-messaging.

Please answer to all when you're answering back to me or anyone in this
community, so people could benefit from the solution or discussion
around the issue,
Quentin


Bel Hadj Salem Talel <bhstalel@...>
 

HI,

I'm trying to make a recipe for wirepas-gateway and wirepas-messaging, let's take wirepas-messaging for an example , it is so easy :
I'm downloading the https://github.com/wirepas/backend-apis/tree/master/wrappers/python , because https://github.com/wirepas/backend-apis does not contain the wirepas-messaging package sources directly .
So I'm zipping the sources of https://github.com/wirepas/backend-apis/tree/master/wrappers/python and adding it with devtool
After that when I build the recipe it build successfully after fixing the do_package with adding FILES_${PN} = "/usr/share/*"
So I checked the tmp/work/.../image and the package is correctly installed into the image destination.
Now when I do devtool finish , it copy paste the same recipe .bb file with the same SRC_URI, now when I try to build it I get the error of :
/media/talel/data/menzu-zeus/menzu/tmp/work/aarch64-poky-linux/python3-wirepas-messaging/1.0-r0/recipe-sysroot-native/usr/bin/python3-native/python3: can't open file 'setup.py': [Errno 2] No such file or directory

The same SRC_URI:
SRC_URI = "file:///home/talel/Desktop/backend-apis/wrappers/python/wirepas-messaging.zip"
What is the differnece ? I can't understand.

Thanks, Talel


On Fri, Sep 25, 2020 at 5:00 PM Quentin Schulz <quentin.schulz@...> wrote:
On Fri, Sep 25, 2020 at 08:12:11AM -0700, Bel Hadj Salem Talel wrote:
> Hi Community,
>
> I have a python module which I downloaded from github containing a setup.py as all python modules.
> When I create a recipe with devtool it compiles correctly with no problem, but when I copy paste the same recipe source from workspace recipes to an official meta recipe I got this error :
> >
> >
> > /media/talel/data/menzu-zeus/menzu/tmp/work/aarch64-poky-linux/python3-wirepas_messaging/1.4.0-r0/recipe-sysroot-native/usr/bin/python3-native/python3:
> > can't open file 'setup.py': [Errno 2] No such file or directory
>
> Here is the recipe by devtool:
>
> ##############
>
> SUMMARY = "Wirepas gateway transport service that connects the local dbus to a remote MQTT broker."
> HOMEPAGE = "https://github.com/wirepas/gateway"
> LICENSE = "Apache"
> LIC_FILES_CHKSUM = "file://LICENSE;md5=cb6bb17b0d0cca188339074207e9f4d8"
> SRC_URI = "file:///media/talel/data/multigate/multigate/meta-wirepas/recipes-wirepas/wirepas-gateway/files/wirepas_gateway-${PV}/wp-gateway.zip"

If your recipe is in:
/media/talel/data/multigate/multigate/meta-wirepas/recipes-wirepas/wirepas-gateway/
and wp-gateway.zip is in:
/media/talel/data/multigate/multigate/meta-wirepas/recipes-wirepas/wirepas-gateway/files/wirepas_gateway-1.4.0
just put:
SRC_URI = "file://wirepas_gateway-${PN}/wp-gateway.zip"

I'd suggest putting your .zip file in:
/media/talel/data/multigate/multigate/meta-wirepas/recipes-wirepas/wirepas-gateway/wirepas_gateway-1.4.0
(note the missing files directory), in which case, your SRC_URI would
be:
SRC_URI = "file://wp-gateway.zip"

Also... This looks like you're taking code from
https://github.com/wirepas/gateway ? Have you thought of using the git
repo directly? e.g. devtool add python3-wirepas-gateway
https://github.com/wirepas/gateway.git?

It'll use the latest commit in master but it's changeable, and it is way
more maintainable IMO compared to a tarball you manually download every
now and then.

Please do NOT use _ in your recipe filename, so rename your recipe to
python3-wirepas-messaging.

Please answer to all when you're answering back to me or anyone in this
community, so people could benefit from the solution or discussion
around the issue,
Quentin


Bel Hadj Salem Talel <bhstalel@...>
 

Hi again,
When I add the recipe with devtool and I disable the .bbappend that adds externalsrc the same error appears.
Should I add it to final recipe as well ?
Can anyone explain this for me ?
Thanks.


Bel Hadj Salem Talel <bhstalel@...>
 

Hi Again,
I solved the issue,
The problem was that when yocto unpacks the source files it unpacks it not in tmp/work/.../python3-wirepas-messaging/python3-wirepas-messaging-1.0 which is the work directory, so that is why setuptools cannot find setup.py ,
So I modified the source files folder to the same recipes name with ${PV} so it can match the same recipe's workdir. And now files are extracted in the good location and get compiled correctly.
devtool uses externalsrc to locate the source files directly, that is why it finds setup.py.
Thanks for the support again, Talel