代码之家  ›  专栏  ›  技术社区  ›  NotSoShabby

numpy.ufunc的大小不正确,请尝试重新编译。即使是最新的熊猫和麻木的版本

  •  7
  • NotSoShabby  · 技术社区  · 7 年前

    我在容器中使用熊猫,得到以下错误:

    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对我来说都不起作用。我试图找出是否有几个版本的麻木,但是 pip show numpy 似乎显示了最新版本。

    而且,这种情况很奇怪,只有在本地部署时才会发生,而不是在服务器上。

    有什么解决办法吗?或者至少如何调试我的numpy和pandas版本(如果有多个版本,如何检查)

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

    5 回复  |  直到 7 年前
        1
  •  3
  •   NotSoShabby    7 年前

    答案是fastparquet(熊猫使用的包)出于某种原因使用了numpy旧的二进制文件。更新包有帮助。我想如果有人遇到这个问题,尝试更新所有相关的包(使用numpy)是正确的方法。

        2
  •  3
  •   voglster    7 年前

    TdDR:如果码头工人 添加:

    RUN pip install numpy
    

    之前 您安装pandas(可能只是您的pip安装-r requirements.txt) 它会再次发挥作用。

    我在阿尔卑斯山的Docker Building Pandas做这个,遇到了同样的问题,它刚刚出现(2018年12月27日),为一个之前一直运行良好的构建。

        3
  •  0
  •   yann    7 年前

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

        4
  •  0
  •   gavinest    7 年前

    我有同样的问题,并尝试了以上所有的回答(在写作时)。唯一对我有用的就是 pyarrow .

    然后我确定要详细说明 皮亚罗 在熊猫中使用拼花地板时使用引擎。尽管熊猫应该默认 皮亚罗 发动机前 fastparquet 根据文件。

    pd.read_parquet('./path', engine='pyarrow')
    
        5
  •  -1
  •   manfred    7 年前

    我对熊猫也有同样的问题。这个问题是通过以下的解决方法来解决的,

    pip uninstall --yes numpy
    
    easy_install --upgrade numpy