7

我希望能够在我的 Mac 上使用 pyLucene。这些说明让我绝望地迷失了方向,因为每个设置或制作说明都要求我在它之前做一些事情,而且很难知道从哪里开始以及从哪个窗口开始做什么。

我已经下载了 PyLucene。我想知道的第一件事是我把文件夹放在哪里,因为这对我来说似乎不是不言而喻的。

要使用它,我被告知我需要构建 JCC,它包含在 pylucene 下载中。

说明:

在命令行中,输入:

$ python setup.py build
$ sudo python setup.py install

但要做到这一点,我认为,我需要在正确的位置或将文件夹放在正确的位置,否则我会得到"setup.py" not found.

您可以在此环境中提供任何帮助(shell 窗口?IDE?)。非常感谢通过第一部分的任何帮助:构建 JCC,然后设置 pylucene。

4

2 回答 2

8

这适用于最近的 macOS 版本。首先,确保安装:

然后添加到您的~/.bash_profile

export JAVA_HOME=$(/usr/libexec/java_home)

然后,重新加载你的 shell。

下载 PyLucenecd并从你的 shell 中提取文件夹。现在,按照官方安装指南中的说明进行操作:

cd jcc
python setup.py build

现在,安装 JCC:

python setup.py install

sudo如果您使用的是 macOS 系统 Python,则可能需要 A。)

现在返回父文件夹并编辑Makefile. 按照指示将未注释的行替换为antpythonjcc和的实际路径NUM_FILES

ANT=ant
PYTHON=python
JCC=python -m jcc
NUM_FILES=8

现在构建 PyLucene:

make
make test

最后,安装构建好的 PyLucene:

make install

sudo(如果使用系统 Python,您可能需要。)

于 2017-08-09T12:07:46.377 回答
3

从此处下载适用于 Mac 的预构建 JCC 和 pylucene 鸡蛋。

到目前为止,python 2.6 的最新版本是 JCC-2.8 和 lucene-3.1.0,所以下面我将使用 easy_install-2.6 和 python2.6。

安装它们:

$ sudo easy_install-2.6 JCC-*.egg
$ sudo easy_install-2.6 lucene-*.egg

测试:

$ python2.6
>>> import jcc
>>> import lucene
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Python/2.6/site-packages/lucene-3.1.0-py2.6-macosx-10.6-universal.egg/lucene/__init__.py", line 7, in <module>
    import _lucene
ImportError: dlopen(/Library/Python/2.6/site-packages/lucene-3.1.0-py2.6-macosx-10.6-universal.egg/lucene/_lucene.so, 2): Library not loaded: @rpath/libjcc.dylib
  Referenced from: /Library/Python/2.6/site-packages/lucene-3.1.0-py2.6-macosx-10.6-universal.egg/lucene/_lucene.so
  Reason: image not found

如果您收到上述错误,只需创建libjcc.dylibin 的符号链接即可修复它/usr/local/lib/libjcc.dylib应该在里面site-packages/JCC-*.egg/

>>> jcc.__file__
'/Library/Python/2.6/site-packages/JCC-2.8-py2.6-macosx-10.7-intel.egg/jcc/__init__.pyc'
>>> ^D

$ ln -s /Library/Python/2.6/site-packages/JCC-2.8-py2.6-macosx-10.7-intel.egg/libjcc.dylib /usr/local/lib/

$ python2.6
>>> import jcc, lucene
>>> 
于 2013-06-28T22:45:10.570 回答