在Python中导入fastparquet时出现snappy错误


问题内容

我已经在已经安装了python(3.6)和anaconda的EC2服务器中安装了以下模块:

  • 活泼的
  • 罂粟
  • s3fs
  • 快速镶木地板

除了fastparquet以外,其他所有东西都可以导入。当我尝试导入fastparquet时,抛出以下错误:

[username@ip8 ~]$ conda -V
conda 4.2.13
[username@ip-~]$ python
    Python 3.6.0 |Anaconda custom (64-bit)| (default, Dec 23 2016, 12:22:00)
    [GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
    Type "help", "copyright", "credits" or "license" for more information.
     import fastparquet
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/home/username/anaconda3/lib/python3.6/site-packages/fastparquet/__init__.py", line 15, in <module>
        from .core import read_thrift
      File "/home/username/anaconda3/lib/python3.6/site-packages/fastparquet/core.py", line 11, in <module>
        from .compression import decompress_data
      File "/home/username/anaconda3/lib/python3.6/site-packages/fastparquet/compression.py", line 43, in <module>
        compressions['SNAPPY'] = snappy.compress
    AttributeError: module 'snappy' has no attribute 'compress'

我该如何解决呢?


问题答案:

不幸的是,在python-land中有很多东西叫做“
snappy”。我相信您输入的可能是错误的,在这种情况下,以下conda命令之一应该可以为您解决此问题:

conda install python-snappy

要么

conda install python-snappy -c conda-forge

后者稍晚一些(发布了GIL,它在线程应用程序中可能很重要)。