Comment 0 for bug 1085226

Revision history for this message
Steve Fox (drfickle2) wrote :

After installing pylucene I should be able to run

    python -c "import lucene"

but it returns the error

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib/python2.7/dist-packages/lucene/__init__.py", line 2, in <module>
    import os, _lucene
ImportError: libjvm.so: cannot open shared object file: No such file or directory

ldd shows libjvm.so not in ld's path:

root@ubuntu-precise:/usr/lib/python2.7/dist-packages/lucene# ldd _lucene.so
 linux-vdso.so.1 => (0x00007fff1b9ff000)
 libjvm.so => not found
 libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f7cbf119000)
 libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f7cbef03000)
 libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f7cbece6000)
 libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7cbe927000)
 libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f7cbe62a000)
 /lib64/ld-linux-x86-64.so.2 (0x00007f7cbfc13000)

After learning that pylucene stores a path during the build process, I searched _lucene.so and found these paths:

    /usr/lib/jvm/java-6-openjdk/jre/lib/amd64:/usr/jvm

The first path doesn't exist on Precise, but it does on Lucid.

ls /usr/lib/jvm/
java-1.6.0-openjdk-amd64 java-6-openjdk-amd64 java-6-openjdk-common java-7-openjdk-amd64

After running
    ln -s /usr/lib/jvm/java-6-openjdk-amd64/ /usr/lib/jvm/java-6-openjdk
    ldconfig

I can now import the lucene module.

I think pylucene just needs to be rebuilt on Precise so that _lucene.so stores the proper path