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