* How does python-native work? @ 2014-04-23 14:15 Gary Thomas 2014-04-23 14:21 ` Chris Larson 0 siblings, 1 reply; 6+ messages in thread From: Gary Thomas @ 2014-04-23 14:15 UTC (permalink / raw) To: Yocto Project How is python-native supposed to work? I can see that it's built and installed in my tmp/sysroots/HOST but it's installed in a sub-directory which is not found by normal means. In particular, I'm trying to build a package which uses configure to discover python support and if present package a python interface library. In the config.log, I see this: configure:12109: checking for python configure:12127: found /usr/bin/python configure:12140: result: /usr/bin/python which only makes sense since there is no python in my sysroots (directly). $ find tmp/sysroots/x86_64-linux/usr/bin -name "python*" tmp/sysroots/x86_64-linux/usr/bin/python-native tmp/sysroots/x86_64-linux/usr/bin/python-native/python-config tmp/sysroots/x86_64-linux/usr/bin/python-native/python2 tmp/sysroots/x86_64-linux/usr/bin/python-native/python2-config tmp/sysroots/x86_64-linux/usr/bin/python-native/python2.7-config tmp/sysroots/x86_64-linux/usr/bin/python-native/python tmp/sysroots/x86_64-linux/usr/bin/python-native/python2.7 Even if I convince configure where to find python, e.g. adding --with-python=$OECORE_NATIVE_SYSROOT/usr/bin/python-native/python --with-python-config=$OECORE_NATIVE_SYSROOT/usr/bin/python-native/python-config this still isn't right since python-config gives incorrect answers: $ tmp/sysroots/x86_64-linux/usr/bin/python-native/python-config --includes -I/usr/include/python2.7 -I/usr/include/python2.7 I would think that python-native would install python on my path (from tmp/sysroots) and as well provide python-config which gives the answers I can use, e.g. --includes which point to the python includes in tmp/sysroots/HOST, etc. What am I missing and how do I work with this? Thanks -- ------------------------------------------------------------ Gary Thomas | Consulting for the MLB Associates | Embedded world ------------------------------------------------------------ ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: How does python-native work? 2014-04-23 14:15 How does python-native work? Gary Thomas @ 2014-04-23 14:21 ` Chris Larson 2014-04-23 14:57 ` Gary Thomas 0 siblings, 1 reply; 6+ messages in thread From: Chris Larson @ 2014-04-23 14:21 UTC (permalink / raw) To: Gary Thomas; +Cc: Yocto Project [-- Attachment #1: Type: text/plain, Size: 490 bytes --] On Wed, Apr 23, 2014 at 7:15 AM, Gary Thomas <gary@mlbassoc.com> wrote: > How is python-native supposed to work? I can see that it's > built and installed in my tmp/sysroots/HOST but it's installed > in a sub-directory which is not found by normal means. > inherit pythonnative (or one of the classes that inherit it) -- Christopher Larson clarson at kergoth dot com Founder - BitBake, OpenEmbedded, OpenZaurus Maintainer - Tslib Senior Software Engineer, Mentor Graphics [-- Attachment #2: Type: text/html, Size: 861 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: How does python-native work? 2014-04-23 14:21 ` Chris Larson @ 2014-04-23 14:57 ` Gary Thomas 2014-04-23 15:37 ` Chris Larson 0 siblings, 1 reply; 6+ messages in thread From: Gary Thomas @ 2014-04-23 14:57 UTC (permalink / raw) To: yocto On 2014-04-23 08:21, Chris Larson wrote: > On Wed, Apr 23, 2014 at 7:15 AM, Gary Thomas <gary@mlbassoc.com <mailto:gary@mlbassoc.com>> wrote: > > How is python-native supposed to work? I can see that it's > built and installed in my tmp/sysroots/HOST but it's installed > in a sub-directory which is not found by normal means. > > > inherit pythonnative (or one of the classes that inherit it) Thanks, I imported 'distutils' and that helped, but I still have problems with it. Looking at log.do_configure: checking for python... /local/rpi_2014-04-10/tmp/sysroots/x86_64-linux/usr/bin/python-native/python checking for python-config... /local/rpi_2014-04-10/tmp/sysroots/x86_64-linux/usr/bin/python-native/python-config Traceback (most recent call last): File "/local/rpi_2014-04-10/tmp/sysroots/x86_64-linux/usr/bin/python-native/python-config", line 6, in <module> from distutils import sysconfig File "/local/rpi_2014-04-10/tmp/sysroots/x86_64-linux/usr/lib/python2.7/distutils/sysconfig.py", line 22, in <module> PREFIX = os.path.normpath(sys.prefix).replace( os.getenv("BUILD_SYS"), os.getenv("HOST_SYS") ) TypeError: expected a character buffer object When I ran python-config before (original email), the results were from outside the build environment, i.e. the command line where I run 'bitbake'. When do_configure() runs in my recipe, the environment seems to be quite different. If I try to run python-config from devshell (for my recipe), it fails as above. I'm sure I'm just missing something... Thanks for the help -- ------------------------------------------------------------ Gary Thomas | Consulting for the MLB Associates | Embedded world ------------------------------------------------------------ ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: How does python-native work? 2014-04-23 14:57 ` Gary Thomas @ 2014-04-23 15:37 ` Chris Larson 2014-04-23 15:44 ` Gary Thomas 0 siblings, 1 reply; 6+ messages in thread From: Chris Larson @ 2014-04-23 15:37 UTC (permalink / raw) To: Gary Thomas; +Cc: yocto [-- Attachment #1: Type: text/plain, Size: 2145 bytes --] On Wed, Apr 23, 2014 at 7:57 AM, Gary Thomas <gary@mlbassoc.com> wrote: > On 2014-04-23 08:21, Chris Larson wrote: > > On Wed, Apr 23, 2014 at 7:15 AM, Gary Thomas <gary@mlbassoc.com <mailto: >> gary@mlbassoc.com>> wrote: >> >> How is python-native supposed to work? I can see that it's >> built and installed in my tmp/sysroots/HOST but it's installed >> in a sub-directory which is not found by normal means. >> >> >> inherit pythonnative (or one of the classes that inherit it) >> > > Thanks, I imported 'distutils' and that helped, but I still have problems > with it. Looking > at log.do_configure: > checking for python... /local/rpi_2014-04-10/tmp/ > sysroots/x86_64-linux/usr/bin/python-native/python > checking for python-config... /local/rpi_2014-04-10/tmp/ > sysroots/x86_64-linux/usr/bin/python-native/python-config > Traceback (most recent call last): > File "/local/rpi_2014-04-10/tmp/sysroots/x86_64-linux/usr/bin/python-native/python-config", > line 6, in <module> > from distutils import sysconfig > File "/local/rpi_2014-04-10/tmp/sysroots/x86_64-linux/usr/lib/ > python2.7/distutils/sysconfig.py", line 22, in <module> > PREFIX = os.path.normpath(sys.prefix).replace( > os.getenv("BUILD_SYS"), os.getenv("HOST_SYS") ) > TypeError: expected a character buffer object > > When I ran python-config before (original email), the results > were from outside the build environment, i.e. the command line > where I run 'bitbake'. When do_configure() runs in my recipe, > the environment seems to be quite different. If I try to run > python-config from devshell (for my recipe), it fails as above. > First, it's a bit worrisome that you're inheriting a class for distutils when your build doesn't actually use distutils.. but beyond that, I don't think the classes inherited by distutils assume you'll be running python-config. Add this: export BUILD_SYS export HOST_SYS -- Christopher Larson clarson at kergoth dot com Founder - BitBake, OpenEmbedded, OpenZaurus Maintainer - Tslib Senior Software Engineer, Mentor Graphics [-- Attachment #2: Type: text/html, Size: 3066 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: How does python-native work? 2014-04-23 15:37 ` Chris Larson @ 2014-04-23 15:44 ` Gary Thomas 2014-04-23 15:51 ` Chris Larson 0 siblings, 1 reply; 6+ messages in thread From: Gary Thomas @ 2014-04-23 15:44 UTC (permalink / raw) To: Chris Larson; +Cc: yocto On 2014-04-23 09:37, Chris Larson wrote: > > On Wed, Apr 23, 2014 at 7:57 AM, Gary Thomas <gary@mlbassoc.com <mailto:gary@mlbassoc.com>> wrote: > > On 2014-04-23 08:21, Chris Larson wrote: > > On Wed, Apr 23, 2014 at 7:15 AM, Gary Thomas <gary@mlbassoc.com <mailto:gary@mlbassoc.com> <mailto:gary@mlbassoc.com <mailto:gary@mlbassoc.com>>> wrote: > > How is python-native supposed to work? I can see that it's > built and installed in my tmp/sysroots/HOST but it's installed > in a sub-directory which is not found by normal means. > > > inherit pythonnative (or one of the classes that inherit it) > > > Thanks, I imported 'distutils' and that helped, but I still have problems with it. Looking > at log.do_configure: > checking for python... /local/rpi_2014-04-10/tmp/__sysroots/x86_64-linux/usr/bin/__python-native/python > checking for python-config... /local/rpi_2014-04-10/tmp/__sysroots/x86_64-linux/usr/bin/__python-native/python-config > Traceback (most recent call last): > File "/local/rpi_2014-04-10/tmp/__sysroots/x86_64-linux/usr/bin/__python-native/python-config", line 6, in <module> > from distutils import sysconfig > File "/local/rpi_2014-04-10/tmp/__sysroots/x86_64-linux/usr/lib/__python2.7/distutils/sysconfig.__py", line 22, in <module> > PREFIX = os.path.normpath(sys.prefix).__replace( os.getenv("BUILD_SYS"), os.getenv("HOST_SYS") ) > TypeError: expected a character buffer object > > When I ran python-config before (original email), the results > were from outside the build environment, i.e. the command line > where I run 'bitbake'. When do_configure() runs in my recipe, > the environment seems to be quite different. If I try to run > python-config from devshell (for my recipe), it fails as above. > > > First, it's a bit worrisome that you're inheriting a class for distutils when your build doesn't actually use distutils.. but beyond that, I don't think the classes inherited by > distutils assume you'll be running python-config. Add this: > > export BUILD_SYS > export HOST_SYS I went back to only inheriting pythonnative (I was a bit overzealous to follow your 'or a class that inherits it'). I found that I also needed: export STAGING_INCDIR export STAGING_LIBDIR Perhaps pythonnative should imply those exports, as without them, python-config is useless. Anyway, now the recipe successfully builds the python interface!! Thanks for the help -- ------------------------------------------------------------ Gary Thomas | Consulting for the MLB Associates | Embedded world ------------------------------------------------------------ ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: How does python-native work? 2014-04-23 15:44 ` Gary Thomas @ 2014-04-23 15:51 ` Chris Larson 0 siblings, 0 replies; 6+ messages in thread From: Chris Larson @ 2014-04-23 15:51 UTC (permalink / raw) To: Gary Thomas; +Cc: yocto [-- Attachment #1: Type: text/plain, Size: 1328 bytes --] On Wed, Apr 23, 2014 at 8:44 AM, Gary Thomas <gary@mlbassoc.com> wrote: > First, it's a bit worrisome that you're inheriting a class for distutils >> when your build doesn't actually use distutils.. but beyond that, I don't >> think the classes inherited by >> distutils assume you'll be running python-config. Add this: >> >> export BUILD_SYS >> export HOST_SYS >> > > I went back to only inheriting pythonnative (I was a bit > overzealous to follow your 'or a class that inherits it'). > > I found that I also needed: > export STAGING_INCDIR > export STAGING_LIBDIR > > Perhaps pythonnative should imply those exports, as without > them, python-config is useless. > > Anyway, now the recipe successfully builds the python interface!! Ah! I knew there was exports needed, but apparently I remembered them wrong. Sorry about that. Glad you got it going, though. I don't think pythonnative exporting those would necessarily be appropriate, though. Not everyone inheriting pythonnative needs to do anything more than run python itself :) Perhaps we need a new class.. though the class proliferation is already a bit much. -- Christopher Larson clarson at kergoth dot com Founder - BitBake, OpenEmbedded, OpenZaurus Maintainer - Tslib Senior Software Engineer, Mentor Graphics [-- Attachment #2: Type: text/html, Size: 1829 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2014-04-23 15:51 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-04-23 14:15 How does python-native work? Gary Thomas 2014-04-23 14:21 ` Chris Larson 2014-04-23 14:57 ` Gary Thomas 2014-04-23 15:37 ` Chris Larson 2014-04-23 15:44 ` Gary Thomas 2014-04-23 15:51 ` Chris Larson
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.