在 python 中导入 fastparquet 时 snappy 出错
Posted
技术标签:
【中文标题】在 python 中导入 fastparquet 时 snappy 出错【英文标题】:error with snappy while importing fastparquet in python 【发布时间】:2017-11-02 05:32:02 【问题描述】:我在已经安装了 python (3.6) 和 anaconda 的 EC2 服务器中安装了以下模块:
活泼 pyarrow 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'
我该如何解决这个问题?
【问题讨论】:
【参考方案1】:不幸的是,python 领域中有很多东西叫做“snappy”。我相信您可能弄错了,在这种情况下,以下 conda 命令之一应该可以为您解决此问题:
conda install python-snappy
或
conda install python-snappy -c conda-forge
后者稍微更新一些(发布在线程应用程序中可能很重要的 GIL)。
【讨论】:
根据您的建议,我通过以下命令安装了它conda install -c conda-forge python-snappy=0.5.1
但是当我尝试导入 fastparquet @mdurant 时仍然出现同样的错误
我需要卸载现有的 'snappy' 包并重新安装 fastparaquet 吗?从 fastparquet 的 source code 看来,它似乎是直接导入 snappy 本身。
我厌倦了使用 conda remove snappy
删除 snappy。它删除了python-snappy: 0.5.1-py36_0 conda-forge
和snappy: 1.1.4-1 conda-forge
。之后我尝试安装 python snappy conda install -c conda-forge python-snappy=0.5.1
,它安装了相同的两个包。但是我在导入 fastparquet @mdurant 时仍然遇到同样的错误
你能做到import snappy; print(snappy.__file__)
吗?这将向您显示您从哪里导入,我假设这是您可能可以删除的其他一些“活泼”。
它说>>> print(snappy.__file__) /home/my_username/anaconda3/lib/python3.6/site-packages/snappy/__init__.py
@mdurant以上是关于在 python 中导入 fastparquet 时 snappy 出错的主要内容,如果未能解决你的问题,请参考以下文章