You are viewing a plain text version of this content. The canonical link for it is here.
Posted to pylucene-dev@lucene.apache.org by Petrus Hyvönen <pe...@gmail.com> on 2017/04/14 22:52:45 UTC

Building jcc 3.0 under linux / anaconda python

Hi,

First, again - many thanks to all of you who made jcc work with python 3,
this is a great thing!

Now playing with linux building and I am using anaconda python distribution
and it seems like the link library for python is called libpython3.6m.so
instead of the libpython3.6 that other python seems to use and setup.py
assume. I have another called libpython3.

If I remove this extra_links_args it seems to build fine, as well as if I
add a "m" to the end:

       elif platform == 'linux':
            #kwds["extra_link_args"] = \
            #    lflags + ['-lpython%s.%s' %(sys.version_info[0:2])]
            kwds["force_shared"] = True    # requires jcc/patches/patch.43

The -m seems to indicate how python was built:
http://stackoverflow.com/questions/16675865/difference-between-python3-and-python3m-executables

Not sure if there is a danger in removing this, as long as it builds fine?

Best Regards
/Petrus






-- 
_____________________________________________
Petrus Hyvönen, Uppsala, Sweden
Mobile Phone/SMS:+46 73 803 19 00

Re: Building jcc 3.0 under linux / anaconda python

Posted by Andi Vajda <va...@apache.org>.
On Sat, 15 Apr 2017, R�diger Meier wrote:

>
>
> On 04/15/2017 12:52 AM, Petrus Hyv�nen wrote:
>> Hi,
>> 
>> First, again - many thanks to all of you who made jcc work with python 3,
>> this is a great thing!
>> 
>> Now playing with linux building and I am using anaconda python distribution
>> and it seems like the link library for python is called libpython3.6m.so
>> instead of the libpython3.6 that other python seems to use and setup.py
>> assume. I have another called libpython3.
>> 
>> If I remove this extra_links_args it seems to build fine, as well as if I
>> add a "m" to the end:
>>
>>        elif platform == 'linux':
>>             #kwds["extra_link_args"] = \
>>             #    lflags + ['-lpython%s.%s' %(sys.version_info[0:2])]
>>             kwds["force_shared"] = True    # requires jcc/patches/patch.43
>> 
>> The -m seems to indicate how python was built:
>> http://stackoverflow.com/questions/16675865/difference-between-python3-and-python3m-executables
>> 
>> Not sure if there is a danger in removing this, as long as it builds fine?
>
> Ah, I've had fixed this more complicated like this
> https://github.com/rudimeier/jcc/commit/b4a7987ebeeb96d6c71b7635160f798303715877
>
> But good to know that it works without. Actually I've had really wondered why 
> we such python setup.py would need complicated extra_link_args at all just to 
> link against itself.

It probably depends on the setuptools version and the monkeypatch hackery 
done for linux support, where linking a plain shared library for JCC in 
shared mode (that libjcc.so thing) is harder than it should be.

If removing all this still works, so be it, but older versions of setuptools 
required this up to a point. I'm in favor of getting rid of all this baggage 
at least in the Python 3 case, since we don't have any backwards 
compatibility requirement there.

Andi..

>
> cu,
> Rudi
>

Re: Building jcc 3.0 under linux / anaconda python

Posted by Rüdiger Meier <sw...@gmx.de>.

On 04/15/2017 12:52 AM, Petrus Hyv�nen wrote:
> Hi,
>
> First, again - many thanks to all of you who made jcc work with python 3,
> this is a great thing!
>
> Now playing with linux building and I am using anaconda python distribution
> and it seems like the link library for python is called libpython3.6m.so
> instead of the libpython3.6 that other python seems to use and setup.py
> assume. I have another called libpython3.
>
> If I remove this extra_links_args it seems to build fine, as well as if I
> add a "m" to the end:
>
>        elif platform == 'linux':
>             #kwds["extra_link_args"] = \
>             #    lflags + ['-lpython%s.%s' %(sys.version_info[0:2])]
>             kwds["force_shared"] = True    # requires jcc/patches/patch.43
>
> The -m seems to indicate how python was built:
> http://stackoverflow.com/questions/16675865/difference-between-python3-and-python3m-executables
>
> Not sure if there is a danger in removing this, as long as it builds fine?

Ah, I've had fixed this more complicated like this
https://github.com/rudimeier/jcc/commit/b4a7987ebeeb96d6c71b7635160f798303715877

But good to know that it works without. Actually I've had really 
wondered why we such python setup.py would need complicated 
extra_link_args at all just to link against itself.

cu,
Rudi

Re: Building jcc 3.0 under linux / anaconda python

Posted by Andi Vajda <va...@apache.org>.
On Sat, 15 Apr 2017, Petrus Hyv�nen wrote:

> Hi,
>
> First, again - many thanks to all of you who made jcc work with python 3,
> this is a great thing!
>
> Now playing with linux building and I am using anaconda python distribution
> and it seems like the link library for python is called libpython3.6m.so
> instead of the libpython3.6 that other python seems to use and setup.py
> assume. I have another called libpython3.
>
> If I remove this extra_links_args it seems to build fine, as well as if I
> add a "m" to the end:
>
>       elif platform == 'linux':
>            #kwds["extra_link_args"] = \
>            #    lflags + ['-lpython%s.%s' %(sys.version_info[0:2])]
>            kwds["force_shared"] = True    # requires jcc/patches/patch.43
>
> The -m seems to indicate how python was built:
> http://stackoverflow.com/questions/16675865/difference-between-python3-and-python3m-executables
>
> Not sure if there is a danger in removing this, as long as it builds fine?

If it builds and runs fine, it should be good.
This 'm' suffix business on linux adds to the fun (!) of configuring jcc for 
shared mode. Sorry this wasn't improved, there are just too many ways to 
skin this cat now.

Andi..

>
> Best Regards
> /Petrus
>
>
>
>
>
>
> -- 
> _____________________________________________
> Petrus Hyv�nen, Uppsala, Sweden
> Mobile Phone/SMS:+46 73 803 19 00
>