【问题标题】:numpy.ufunc has the wrong size, try recompiling. even with the latest pandas and numpy versionsnumpy.ufunc 的大小错误,请尝试重新编译。即使是最新的 pandas 和 numpy 版本
【发布时间】:2019-05-23 01:40:09
【问题描述】:

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

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 上读到,当 pandas 是针对比您安装的版本更新的 numpy 版本编译时,会显示此消息。但是更新 pandas 和 numpy 对我不起作用。我试图找出我是否有几个版本的 numpy,但 pip show numpy 似乎显示的是最新版本。

此外,以一种奇怪的方式,这仅在我在本地部署而不是在服务器上部署时才会发生。

有什么想法可以解决这个问题吗?或者至少如何调试我的 numpy 和 pandas 版本(如果有多个版本我该如何检查)

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

【问题讨论】:

    标签: python pandas numpy


    【解决方案1】:

    TLDR:如果 docker 添加:

    RUN pip install numpy
    

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

    我正在 docker building pandas in alpine 中执行此操作,遇到了同样的问题,它刚刚弹出(2018 年 12 月 27 日),因为之前运行良好的构建。

    【讨论】:

    • 这对我来说不是问题,但看起来你解决了某人的问题,所以干杯。
    • 这最初为我解决了问题,但几天前又出现了。
    【解决方案2】:

    其实我的问题是通过某种方式解决的

     pip uninstall numpy
     pip install numpy
    

    真正的过程是

    ➜  ~ pip3 uninstall numpy -y
    Uninstalling numpy-1.14.5:
      Successfully uninstalled numpy-1.14.5
    ➜  ~ pip3 install numpy     
    Requirement already satisfied: numpy in /usr/lib/python3/dist-packages (1.16.1)
    ➜  ~ pip3 uninstall numpy   
    Uninstalling numpy-1.16.1:
      Would remove:
        /usr/bin/f2py3
        /usr/bin/f2py3.7
        /usr/lib/python3/dist-packages/numpy
        /usr/lib/python3/dist-packages/numpy-1.16.1.egg-info
    Proceed (y/n)? y
      Successfully uninstalled numpy-1.16.1
    ➜  ~ pip3 install numpy   
    Collecting numpy...
    

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

    【讨论】:

      【解决方案3】:

      答案是 fastparquet(pandas 使用的一个包)出于某种原因正在使用 numpy 较旧的二进制文件。

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

      【讨论】:

      • 我正在使用旧安装的 pandas (0.23.4) 作为稳定进程的一部分,但所有内容都会定期重新安装,并且停止工作。好像是同一个问题。此问题开始和停止的 fastparquet 版本是什么?
      • 更新到最新版本 (0.2.1) 对我有用。确保 stakctrace 确实会导致 fastparquet(这意味着这是导致问题的实际包),就像我的情况一样
      • 实际上有另一个解决方案,因为 fastparquet 不是我的问题。我安装了 numpy 然后 pandas 并解决了问题。我以每种方式指定了相同的版本,所以有点困惑为什么它实际上有效。
      【解决方案4】:

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

      【讨论】:

      • 是的。我发现了问题
      【解决方案5】:

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

      然后我确保在 pandas 中使用 parquet 时指定 pyarrow 引擎。尽管根据文档,pandas 应该在 fastparquet 之前默认使用 pyarrow 引擎。

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

      【讨论】:

        【解决方案6】:

        我遇到了和上面一样的问题。我的解决方案是从官网安装 Python 2.7:https://www.python.org/downloads/release/python-2713/

        【讨论】:

          【解决方案7】:

          我对熊猫也有同样的问题。通过执行以下解决方法解决了此问题,

          pip uninstall --yes numpy
          
          easy_install --upgrade numpy
          

          【讨论】:

            猜你喜欢
            • 2014-11-21
            • 1970-01-01
            • 2013-07-16
            • 2016-11-06
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多