Hello Ricardo,

On 08/26/2016 10:30 AM, Ricardo Ribalda Delgado wrote:
Fixes:

root@qt5022:~# python3
Python 3.5.1 (default, Aug  5 2016, 13:25:54)
[GCC 5.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
import collections
Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
   File "/usr/lib/python3.5/collections/__init__.py", line 10, in <module>
     from operator import itemgetter as _itemgetter, eq as _eq
ImportError: No module named 'operator'
root@qt5022:~# dpkg -S /usr/lib/python3.5/collections/__init__.py
python3-core: /usr/lib/python3.5/collections/__init__.py

Reported-by: Dimitrios Katsaros <patcherw...@gmail.com>
Signed-off-by: Ricardo Ribalda Delgado <ricardo.riba...@gmail.com>
---

v2: also hack the generate file
  meta/recipes-devtools/python/python-3.5-manifest.inc | 2 +-
  scripts/contrib/python/generate-manifest-3.5.py      | 2 +-
  2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/meta/recipes-devtools/python/python-3.5-manifest.inc 
b/meta/recipes-devtools/python/python-3.5-manifest.inc
index 304611432e37..fb05d6d36df3 100644
--- a/meta/recipes-devtools/python/python-3.5-manifest.inc
+++ b/meta/recipes-devtools/python/python-3.5-manifest.inc
@@ -38,7 +38,7 @@ RDEPENDS_${PN}-compression="${PN}-core ${PN}-codecs 
${PN}-importlib ${PN}-thread
  FILES_${PN}-compression="${libdir}/python3.5/gzip.* ${libdir}/python3.5/zipfile.* 
${libdir}/python3.5/tarfile.* ${libdir}/python3.5/lib-dynload/bz2.*.so 
${libdir}/python3.5/lib-dynload/zlib.*.so "
SUMMARY_${PN}-core="Python interpreter and core modules"
-RDEPENDS_${PN}-core="${PN}-lang ${PN}-re ${PN}-reprlib ${PN}-codecs ${PN}-io 
${PN}-math"
+RDEPENDS_${PN}-core="${PN}-lang ${PN}-re ${PN}-reprlib ${PN}-codecs ${PN}-io 
${PN}-math ${PN}-misc"
It seems that you are trying to include the python3-misc package on the python3-core package, and while this in fact would fix the issue you are having, it goes against the the very reason we create several python packages, specifically the python3-core and python3-misc packages.

We create the python3-core package to include the very minimal (core) modules needed to run python3 (since we may need to save up space on our embedded system).

And we create lots of other packages to simulate granularity amongst the build system, so whoever wants to use a certain python package would just need to include that specific module on the system, again, to save up space on the embedded device

And the python3-misc package contains everything else.

So it doesn't make any sense to include everything on the python3-core package.

  FILES_${PN}-core="${libdir}/python3.5/__future__.* 
${libdir}/python3.5/_abcoll.* ${libdir}/python3.5/abc.* ${libdir}/python3.5/ast.* 
${libdir}/python3.5/copy.* ${libdir}/python3.5/copyreg.* 
${libdir}/python3.5/configparser.* ${libdir}/python3.5/genericpath.* 
${libdir}/python3.5/getopt.* ${libdir}/python3.5/linecache.* 
${libdir}/python3.5/new.* ${libdir}/python3.5/os.* ${libdir}/python3.5/posixpath.* 
${libdir}/python3.5/struct.* ${libdir}/python3.5/warnings.* 
${libdir}/python3.5/site.* ${libdir}/python3.5/stat.* ${libdir}/python3.5/UserDict.* 
${libdir}/python3.5/UserList.* ${libdir}/python3.5/UserString.* 
${libdir}/python3.5/lib-dynload/binascii.*.so 
${libdir}/python3.5/lib-dynload/_struct.*.so 
${libdir}/python3.5/lib-dynload/time.*.so 
${libdir}/python3.5/lib-dynload/xreadlines.*.so ${libdir}/python3.5/types.* 
${libdir}/python3.5/platform.* ${bindir}/python* ${libdir}/python3.5/_weakrefset.* 
${libdir}/python3.5/sysconfig.* ${libdir}/python3.5/_sysconfigdata.* ${libdir}/pyt
hon
  3.5/config/Makefile ${includedir}/python${PYTHON_BINABI}/pyconfig*.h 
${libdir}/python${PYTHON_MAJMIN}/collections 
${libdir}/python${PYTHON_MAJMIN}/_collections_abc.* 
${libdir}/python${PYTHON_MAJMIN}/_sitebuiltins.* 
${libdir}/python${PYTHON_MAJMIN}/sitecustomize.py "
SUMMARY_${PN}-crypt="Python basic cryptographic and hashing support"
diff --git a/scripts/contrib/python/generate-manifest-3.5.py 
b/scripts/contrib/python/generate-manifest-3.5.py
index 2906cc66d042..1cac9a7fe1c6 100755
--- a/scripts/contrib/python/generate-manifest-3.5.py
+++ b/scripts/contrib/python/generate-manifest-3.5.py
@@ -166,7 +166,7 @@ if __name__ == "__main__":
      # Parameters: revision, name, description, dependencies, filenames
      #
- m.addPackage( "${PN}-core", "Python interpreter and core modules", "${PN}-lang ${PN}-re ${PN}-reprlib ${PN}-codecs ${PN}-io ${PN}-math",
+    m.addPackage( "${PN}-core", "Python interpreter and core modules", "${PN}-lang 
${PN}-re ${PN}-reprlib ${PN}-codecs ${PN}-io ${PN}-math ${PN}-misc",
      "__future__.* _abcoll.* abc.* ast.* copy.* copyreg.* configparser.* " +
      "genericpath.* getopt.* linecache.* new.* " +
      "os.* posixpath.* struct.* " +


So in this case, I believe that a patch is not needed, and what you need to do is search for the module you are looking for (operator) within the manifest file, and include it on your system.

by doing a quick search I believe that perhaps doing a

IMAGE_INSTALL += "python3-lang"

on your local.conf would fix the issue.

--
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to