无法在python中导入snappy

时间:2013-04-06 07:15:43

标签: python python-2.7 ubuntu-12.04 snappy

我使用名为python-snappy的包。此程序包需要snappy库。因此,我通过以下命令成功下载并安装snappy,例如:

./configure
make
sudo make install

当我导入snappy时,我收到错误:

from _snappy import CompressError, CompressedLengthError, \
ImportError: libsnappy.so.1 cannot open shared object file: No such file or directory

我正在使用Python 2.7,snappy,python-snappy和Ubuntu 12.04 我该如何解决这个问题? 感谢

4 个答案:

答案 0 :(得分:3)

传统上,您可能必须运行ldconfig实用程序来更新 /etc/ld.so.cache (或适用于您的操作系统的等效项)。有时可能需要向 /etc/ld.so.conf 添加新条目(路径)。

基本上,许多Unix版本(以及其他类Unix操作系统)上的共享对象(so)加载器使用缓存来帮助将其基本文件名解析为要加载的实际文件(通常是 mmap()' d )。这大致类似于在向PATH中的目录添加内容后,在shell中运行 hash -r rehash 的间歇性需求。

通常你可以在没有参数的情况下运行ldconfig(可能在将新库的路径添加到 /etc/ld.so.conf 文本文件之后)。好的 Makefile 将在make install期间为您执行此操作。

以下是更多信息:http://linux.101hacks.com/unix/ldconfig/

答案 1 :(得分:2)

您可以从ubuntu repos安装python-snappylibsnappy1

$ sudo apt-get install libsnappy1 python-snappy 

您不必下载任何内容。

答案 2 :(得分:0)

这里例如anaconda python

  1. github
  2. 下载snappy
  3. 还下载了python文件
  4. 提取两个文件
  5. google-snappy文件夹

    $ ./configure

    $ make

    $ sudo make install

  6. 然后在python文件夹中:

    $ python setup.py build # here I get the same import _snappy error

    $ python setup.py install # after this import works

答案 3 :(得分:0)

以下对我有用:

$ conda install python-snappy

然后在我使用的代码中:

import snappy