From: Christophe Vu-Brugier <cvubrugier@fastmail.fm>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 1/1] python3: add patch to fix PEP 3147 issue with automake built packages
Date: Sat, 29 Aug 2015 14:06:35 +0200 [thread overview]
Message-ID: <20150829140635.1495affc@trantor> (raw)
In-Reply-To: <20150828193643.10876a0f@free-electrons.com>
Hi Thomas,
On Fri, 28 Aug 2015 19:36:43 +0200, Thomas Petazzoni wrote :
> On Fri, 28 Aug 2015 16:58:41 +0200, Christophe Vu-Brugier wrote:
> > Packages built with automake use a `py-compile` helper to
> > byte-compile Python source files. This script uses the "py_compile"
> > module from the standard library. In turn, the compile() function
> > in the "py_compile" module invokes the cache_from_source() function
> > provided by importlib.
> >
> > This patch changes cache_from_source() and source_from_cache() in
> > importlib to get rid of the "__pycache__" directory.
> >
> > This fixes the following import error in kmod when the module is
> > built for Python 3:
> >
> > >>> from kmod import Kmod
> > Traceback (most recent call last):
> > File "<stdin>", line 1, in <module>
> > ImportError: cannot import name 'Kmod'
> >
> > Signed-off-by: Christophe Vu-Brugier <cvubrugier@fastmail.fm>
>
> Thanks for this patch. However, I'm wondering if it doesn't make the
> existing patch 016-distutils-no-pep3147.patch unnecessary. Patch 016
> fixes the distutils/setuptools case by preventing the logic from
> calling importlib.util.cache_from_source(). But since you're fixing
> this function in your patch, maybe there's no need for the 016 patch
> anymore ? What about patch 004 ?
>
> Could you do some quick testing without patches 004 and 016, and see
> if 1/ the Python standard library is byte-compiled without __pycache__
> folders and 2/ same for Python external modules built with distutils
> and setuptools.
>
> I'm pretty sure with your patch we can remove patch 016 (so your patch
> could replace it). I'm not sure about patch 004, though.
Indeed, patch 016 for distutils / setuptools is no longer necessary.
Moreover, patch 004 for the standard library can be dropped as well.
Afer removing patches 004 and 016, I see no __pycache__ directory in the
Python path and the interpreter behaves as expected (I tested by loading
modules and running samples for readline, urwid, six, kmod or
pyparsing).
I will respin my patch to drop 004 and 016 and update 005 which is
impacted by the removal of 004.
Thank you !
--
Christophe Vu-Brugier
next prev parent reply other threads:[~2015-08-29 12:06 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-28 14:58 [Buildroot] [PATCH 1/1] python3: add patch to fix PEP 3147 issue with automake built packages Christophe Vu-Brugier
2015-08-28 17:36 ` Thomas Petazzoni
2015-08-29 12:06 ` Christophe Vu-Brugier [this message]
2015-08-29 12:50 ` Thomas Petazzoni
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150829140635.1495affc@trantor \
--to=cvubrugier@fastmail.fm \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox