Пилицен в Python 2.6 + MacOs Snow Leopard - PullRequest
0 голосов
/ 06 октября 2009

Привет, Я пытаюсь установить Pylucene на свой 32-битный питон, работающий на Snow Leopard. Я скомпилировал JCC с успехом. Но я получаю предупреждения при приготовлении пилюцена:

ld: warning: in build/temp.macosx-10.6-i386-2.6/build/_lucene/__init__.o, file is not of required architecture
ld: warning: in build/temp.macosx-10.6-i386-2.6/build/_lucene/__wrap01__.o, file is not of required architecture
ld: warning: in build/temp.macosx-10.6-i386-2.6/build/_lucene/__wrap02__.o, file is not of required architecture
ld: warning: in build/temp.macosx-10.6-i386-2.6/build/_lucene/__wrap03__.o, file is not of required architecture
ld: warning: in build/temp.macosx-10.6-i386-2.6/build/_lucene/functions.o, file is not of required architecture
ld: warning: in build/temp.macosx-10.6-i386-2.6/build/_lucene/JArray.o, file is not of required architecture
ld: warning: in build/temp.macosx-10.6-i386-2.6/build/_lucene/JObject.o, file is not of required architecture
ld: warning: in build/temp.macosx-10.6-i386-2.6/build/_lucene/lucene.o, file is not of required architecture
ld: warning: in build/temp.macosx-10.6-i386-2.6/build/_lucene/types.o, file is not of required architecture
ld: warning: in /Developer/SDKs/MacOSX10.4u.sdk/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/JCC-2.3-py2.6-macosx-10.3-fat.egg/libjcc.dylib, file is not of required architecture
ld: warning: in /Developer/SDKs/MacOSX10.4u.sdk/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/JCC-2.3-py2.6-macosx-10.3-fat.egg/libjcc.dylib, file is not of required architecture
build of complete

Затем я пытаюсь импортировать lucene:

MacBookPro:~/tmp/trunk python
Python 2.6.3 (r263:75184, Oct  2 2009, 07:56:03) 
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pylucene
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named pylucene
>>> import lucene
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/lucene-2.9.0-py2.6-macosx-10.6-i386.egg/lucene/__init__.py", line 7, in <module>
    import _lucene
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/lucene-2.9.0-py2.6-macosx-10.6-i386.egg/lucene/_lucene.so, 2): Symbol not found: __Z8getVMEnvP7_object
  Referenced from: /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/lucene-2.9.0-py2.6-macosx-10.6-i386.egg/lucene/_lucene.so
  Expected in: flat namespace
 in /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/lucene-2.9.0-py2.6-macosx-10.6-i386.egg/lucene/_lucene.so
>>> 

Есть намеки?

Ответы [ 2 ]

1 голос
/ 01 февраля 2011

Мне пришлось отрегулировать строки с 44 по 49 в Makefile, чтобы правильно установить пилицен:

PREFIX_PYTHON=/my/virtualenv
ANT=ant
PYTHON=$(PREFIX_PYTHON)/bin/python
# add .__main__ to default configuration!
# --arch depends on your architecture of course
JCC=$(PYTHON) -m jcc.__main__ --shared --arch x86_64                                                                                                                                                                      
NUM_FILES=2

Надеюсь, это поможет!

0 голосов
/ 06 октября 2009

Трудно сказать наверняка, но это может быть так просто, как если бы jcc не был установлен в том же месте Python Для устранения неполадок я бы сначала попытался использовать jcc. Эти команды должны работать даже без lucene:

>>> import jcc
>>> jcc.initVM(jcc.CLASSPATH)
<jcc.JCCEnv object at 0x1004730d8>
>>> jcc._jcc.getVMEnv()
<jcc.JCCEnv object at 0x1004730f0>

И имя модуля - lucene, кстати, не pylucene.

...