Hello Alejandro,
Thank you for your help.
Unfortunately, the pyvenv package is not in the manifest, I cannot therefore
add the path where you are suggesting.
It is not immediately clear to me where the package is created, however, files
are added to the pyvenv package (using FILES_${PN}-pyvenv += ) in the
python3_3.5.6.bb recipe. This is why I added the
${libdir}/${PYTHON_MAJMIN}/venv file in a bbapend to the python3_3.5.6.bb
recipe.
I am able to successfully run the create_manifest3.py script but the generated
manifest content has not changed. I did not expect it to change because pyvenv
was not there in the first place.
On a different note; I managed to include the venv module by including the
python3-misc package to the build. I can create a virtual environment using
python -m venv. The issue with that is that python3-misc includes other modules
I do not need and thus needlessly increases size. Another issue is that I have
to include python3-runpy (to use the -m option when creating the virtual
environment).
I also realised that python3-pip is a depencency to venv.
In conclusion, can you think of how dependencies (venv and pip) can be added to
the python3-pyvenv package? This will allow reduction of the image size by
removing python3-misc and python3-runpy.
Hugues
________________________________
From: Alejandro Enedino Hernandez Samaniego <[email protected]>
Sent: 19 October 2018 13:37:14
To: Hugues Kamba
Cc: Burton, Ross; Jonathan Haigh; OE-core; Jeremy Johnson
Subject: Re: [OE-core] Missing venv module in Python 3
Hello Huges,
The path needs to be added to the manifest itself (the json file) under the
files section for the pyvenv package not in a bbappend.
And to run the create manifest task you would do:
$ bitbake python3 -c create_manifest
Once I get to my computer I will be able to provide more help.
Alejandro
On Fri, Oct 19, 2018, 10:08 AM Hugues Kamba
<[email protected]<mailto:[email protected]>> wrote:
Hi Alejandro,
Thank you for your suggestion.
The following has been added to a python3_%.bbapend:
# Add missing venv module dependency.
FILES_${PN}-pyvenv += "${libdir}/${PYTHON_MAJMIN}/venv"
However, it is not quite obvious how to successfully run the
create_manifest3.py script.
Attempts were made to run it with "python3 create_manifest3.py python3.5" but
it complains about an undefined variable (nativelibfolder).
I also tried to run it using "bitbake pyhton -c create_manifest3.py" as
specified in the docstring but execution fails because of missing tasks (no
do_..).
Could you or others on the mailing list, provide some guidance on how to go
about running (arguments, etc..) the create_manifest3.py script.
[cid:bbaed11e-d9b2-456f-bd15-200669ad237e]
Hugues Kamba | Senior Software Engineer
[email protected]<mailto:[email protected]>
CPC1, Capital Park, Cambridge Road, Fulbourn, CB21 5XE, UK
Tel: (+44)1223 400400
Visit the new ARM Connected
Community<https://urldefense.proofpoint.com/v2/url?u=http-3A__community.arm.com_welcome&d=DwMFAg&c=bKNseOHsszsRCtLFfd6XtA&r=h1JGsEgvfYBPUFak8b6Fs-oV6irVsuuFc4RBESlsTFE&m=N8x4mnijl-wwLmtz3tbzVbe9R-QRW9bVZHfjOv3YY0o&s=FTtAextvaqUli74ujYjbDxp7jK9aaA6G7NOsVfryuyw&e=>
________________________________
From: Alejandro Enedino Hernandez Samaniego
<[email protected]<mailto:[email protected]>>
Sent: 18 October 2018 19:18
To: Burton, Ross
Cc: Jonathan Haigh; OE-core; Jeremy Johnson; Hugues Kamba
Subject: Re: [OE-core] Missing venv module in Python 3
Hello folks,
On Thu, Oct 18, 2018, 3:34 PM Burton, Ross
<[email protected]<mailto:[email protected]>> wrote:
On Thu, 18 Oct 2018 at 16:19, Jonathan Haigh
<[email protected]<mailto:[email protected]>> wrote:
> The venv package (https://docs.python.org/3/library/venv.html) itself is
> missing although its source is available within Python 3.5
> (https://www.python.org/ftp/python/3.5.6/Python-3.5.6.tgz). As mentioned
> earlier, it seems the issue is because there is no entry in the manifest from
> which the various Python 3 modules are created
> (https://github.com/openembedded/openembedded-core/blob/master/meta/recipes-devtools/python/python3/python3-manifest.json).
>
> The manifest is generated from
> https://github.com/openembedded/openembedded-core/blob/master/meta/recipes-devtools/python/python3/create_manifest3.py,
> and it does not seem obvious to me how to go about correctly adding a new
> module to the manifest, using create_manifest3.py or otherwise.
The script itself should get the venv dependency automatically (my guess is
that this isn't getting detected by the script because the module itself its
coming from a directory) but I'd have to debug what is exactly happening,
although I don't have access to my computer at the moment.
An easy fix (for now) is to add the
/usr/lib/python3.5/venv/
Path to the manifest on the FILES for the pyenv module.
After that running the create_manifest task should get its dependencies
correctly and update the manifest so it can be pushed to the repo.
Cheers,
Alejandro
Ah, right.
In that case:
$ oe-pkgdata-util find-path */*venv*py
python3-tests: /usr/lib/python3.5/test/test_venv.py
python3-misc: /usr/lib/python3.5/venv/__main__.py
python3-misc: /usr/lib/python3.5/venv/__init__.py
The files are in the python3-misc package, which is the fallback for
everything which isn't explicitly put into another package. I'd say
the best fix for this would be to edit the manifest so the venv module
goes into the python3-pyvenv package too.
Ross
IMPORTANT NOTICE: The contents of this email and any attachments are
confidential and may also be privileged. If you are not the intended recipient,
please notify the sender immediately and do not disclose the contents to any
other person, use it for any purpose, or store or copy the information in any
medium. Thank you.
IMPORTANT NOTICE: The contents of this email and any attachments are
confidential and may also be privileged. If you are not the intended recipient,
please notify the sender immediately and do not disclose the contents to any
other person, use it for any purpose, or store or copy the information in any
medium. Thank you.
--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core