lucene-pylucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andi Vajda (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (PYLUCENE-43) Failed to build PyLucene after the removal of SetuptoolsVersion in setuptools
Date Wed, 19 Sep 2018 17:13:00 GMT

     [ https://issues.apache.org/jira/browse/PYLUCENE-43?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Andi Vajda resolved PYLUCENE-43.
--------------------------------
    Resolution: Fixed

Hopefully fixed in rev 1841356.
The newer setuptools helpfully dropped SetuptoolsVersion.
I added another case for looking for 
  pkg_resources.extern.packaging.version import Version
which seems to be there then, sigh.
Thank you for the bug report.

> Failed to build PyLucene after the removal of SetuptoolsVersion in setuptools
> -----------------------------------------------------------------------------
>
>                 Key: PYLUCENE-43
>                 URL: https://issues.apache.org/jira/browse/PYLUCENE-43
>             Project: PyLucene
>          Issue Type: Bug
>            Reporter: Xiang Zhang
>            Priority: Major
>   Original Estimate: 24h
>  Remaining Estimate: 24h
>
> *Environment I'm Using*:
>  * ubuntu 16.04
>  * cleanly installed python 2.7.15 built with latest pyenv
>  * Setuptools 40.4.1
>  * pip 18.0
>  * pylucene-7.4.0.tar.gz
>  * jdk 1.8.0_181
>  * ant 1.10. 5
> *Phenomenon*
> Step1. build jcc
> In JCC's setup.py file, with_modern_setuptools is False by checking if pkg_resource.SetuptoolsVersions
is available.
> According to [setuptools developer|https://github.com/pypa/setuptools/issues/1310], this
is not documented and is already removed, causing jcc not built with shared mode consequently
but no error or warning is prompted.
> Step2. build pylucene
> The final error comes with the following line:
> {code:java}
> python -m jcc --shared --jar lucene-java-7.4.0/lucene/build/core/lucene-core-7.4.0.jar
--jar ....(omitted).....  --version 7.4.0 --module python/collections.py --module python/ICUNormalizer2Filter.py
--module python/ICUFoldingFilter.py --module python/ICUTransformFilter.py  --files 8 --build
> ....(lots of warning omitted).....
> Traceback (most recent call last):
>   File "/home/hesz/.pyenv/versions/2.7.15/lib/python2.7/runpy.py", line 174, in _run_module_as_main
>     "__main__", fname, loader, pkg_name)
>   File "/home/hesz/.pyenv/versions/2.7.15/lib/python2.7/runpy.py", line 72, in _run_code
>     exec code in run_globals
>   File "/home/hesz/.pyenv/versions/2.7.15/lib/python2.7/site-packages/JCC-3.2-py2.7-linux-x86_64.egg/jcc/__main__.py",
line 107, in <module>
>     cpp.jcc(sys.argv)
>   File "/home/hesz/.pyenv/versions/2.7.15/lib/python2.7/site-packages/JCC-3.2-py2.7-linux-x86_64.egg/jcc/cpp.py",
line 736, in jcc
>     egg_info, extra_setup_args)
>   File "/home/hesz/.pyenv/versions/2.7.15/lib/python2.7/site-packages/JCC-3.2-py2.7-linux-x86_64.egg/jcc/python.py",
line 1606, in compile
>     raise NotImplementedError, "JCC was not built with --shared mode support, see JCC's
INSTALL file for more information"
> NotImplementedError: JCC was not built with --shared mode support, see JCC's INSTALL
file for more information
> Makefile:349: recipe for target 'compile' failed
> make: *** [compile] Error 1
> {code}
> It was hard to debug given that "JCC is not built with shared mode", actually I indeed
got a _jcc.so library in the build directory.
> *Quick Fix for Me*
> As long as I believe the setuptools package has enough high version, I force the with_modern_setuptools
switch to be True as the following(at line 210 in JCC's setup.py):
> {code:java}
> ...
>     try:
>         from pkg_resources import SetuptoolsVersion
>         with_modern_setuptools = True
>     except ImportError:
>         with_modern_setuptools = False
>     enable_shared = False
>     with_modern_setuptools = True
>     if with_modern_setuptools and 'NO_SHARED' not in os.environ:
> ....
> {code}
> i.e., the helpers for linux are still working well.
> then rebuilt JCC, remove the existing one and reinstall, then continue to make pylucene,
all things work now.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message