[ 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)