numpy.ufunc的大小错误,请尝试重新编译。即使使用最新的熊猫和numpy版本

时间:2018-12-23 13:51:48

标签: python pandas numpy

我在容器中使用熊猫,但出现以下错误:

Traceback (most recent call last):
  File "/volumes/dependencies/site-packages/celery/app/trace.py", line 374, in trace_task
    R = retval = fun(*args, **kwargs)
  File "/volumes/dependencies/site-packages/celery/app/trace.py", line 629, in __protected_call__
    return self.run(*args, **kwargs)
  File "/volumes/code/autoai/celery/data_template/api.py", line 16, in run_data_template_task
    data_template.run(data_bundle, columns=columns)
  File "/volumes/code/autoai/models/data_template.py", line 504, in run
    self.to_parquet(data_bundle, columns=columns)
  File "/volumes/code/autoai/models/data_template.py", line 162, in to_parquet
    }, parquet_path=data_file.path, directory="", dataset=self)
  File "/volumes/code/autoai/core/datasets/parquet_converter.py", line 46, in convert
    file_system.write_dataframe(parquet_path, chunk, directory, append=append)
  File "/volumes/code/autoai/core/file_systems.py", line 76, in write_dataframe
    append=append)
  File "/volumes/dependencies/site-packages/pandas/core/frame.py", line 1945, in to_parquet
    compression=compression, **kwargs)
  File "/volumes/dependencies/site-packages/pandas/io/parquet.py", line 256, in to_parquet
    impl = get_engine(engine)
  File "/volumes/dependencies/site-packages/pandas/io/parquet.py", line 40, in get_engine
    return FastParquetImpl()
  File "/volumes/dependencies/site-packages/pandas/io/parquet.py", line 180, in __init__
    import fastparquet
  File "/volumes/dependencies/site-packages/fastparquet/__init__.py", line 8, in <module>
    from .core import read_thrift
  File "/volumes/dependencies/site-packages/fastparquet/core.py", line 13, in <module>
    from . import encoding
  File "/volumes/dependencies/site-packages/fastparquet/encoding.py", line 11, in <module>
    from .speedups import unpack_byte_array
  File "__init__.pxd", line 861, in init fastparquet.speedups
ValueError: numpy.ufunc has the wrong size, try recompiling. Expected 192, got 216

我在other answers上读到,当使用比您所安装的numpy版本新的numpy版本编译熊猫时,会显示此消息。但是同时更新熊猫和numpy对我来说不起作用。我试图找出是否有一些numpy版本,但是pip show numpy似乎显示了最新版本。

此外,这仅在我本地部署而不是在服务器上部署时才发生。

任何想法如何解决该问题?或者至少如何调试numpy和pandas版本(如果有多个版本,如何检查)

我尝试过:升级两个软件包,然后删除并重新安装它们。那里没有帮助。

7 个答案:

答案 0 :(得分:7)

TLDR:如果是docker 添加:

RUN pip install numpy

之前安装熊猫(可能只是pip install -r requirements.txt) 并且它将再次正常工作。

我正在docker建造阿尔卑斯山的熊猫中这样做并遇到相同的问题,它只是弹出(2018年12月27日),用于以前运行良好的构建。

答案 1 :(得分:4)

答案是因为某些原因,fastparquet(熊猫使用的软件包)正在使用numpy较旧的二进制文件。

更新该软件包很有帮助。我想如果有人解决此问题,尝试更新所有相关软件包(使用numpy)将是正确的方法

答案 2 :(得分:3)

实际上我的问题通过某种方式得到了解决

driver.runAppInBackground(Duration.ofSeconds(5))

真正的过程是

 pip uninstall numpy
 pip install numpy

这意味着问题可能是版本冲突?

答案 3 :(得分:0)

确保在/volumes/dependencies/site-packages/上安装了正确版本的numpy,并且您正在使用它。

答案 4 :(得分:0)

我遇到了同样的问题,并尝试了上述所有答复(在撰写本文时)。对我唯一有用的是切换到pyarrow

然后确保在大熊猫中使用实木复合地板时指定pyarrow引擎。尽管根据文档,大熊猫应该在pyarrow之前默认使用fastparquet引擎。

pd.read_parquet('./path', engine='pyarrow')

答案 5 :(得分:0)

我遇到了与上述相同的问题。我的解决方案是从官方网站https://www.python.org/downloads/release/python-2713/

安装Python 2.7

答案 6 :(得分:-1)

我对大熊猫也有同样的问题。通过执行以下变通办法可以解决此问题,

pip uninstall --yes numpy

easy_install --upgrade numpy