lucene-pylucene-dev mailing list archives

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

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

Xiang Zhang updated PYLUCENE-43:
--------------------------------
    Description: 
*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.

  was:
*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 useful

then rebuilt JCC, remove the existing one and reinstall, then continue to make pylucene, all
things work now.


> 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