我使用名为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 我该如何解决这个问题? 感谢
答案 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
期间为您执行此操作。
答案 1 :(得分:2)
您可以从ubuntu repos安装python-snappy和libsnappy1:
$ sudo apt-get install libsnappy1 python-snappy
您不必下载任何内容。
答案 2 :(得分:0)
这里例如anaconda python
google-snappy文件夹
$ ./configure
$ make
$ sudo make install
然后在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