Я использую 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
Я читал на другие ответы, что это сообщение появляется, когда pandas компилируется с более новой версией numpy, чем та, которую вы установили. Но обновление как pandas, так и numpy у меня не сработало. Я попытался узнать, есть ли у меня несколько версий numpy, но pip show numpy, похоже, показывает последнюю версию.
Кроме того, как ни странно, это происходит только тогда, когда я развертываю локально, а не на сервере.
Есть идеи, как это исправить? Или, по крайней мере, как отлаживать мои версии numpy и pandas (если есть несколько версий, как мне это проверить)
Я пробовал: обновить оба пакета, удалить и переустановить их. Никакой помощи.






Убедитесь, что на /volumes/dependencies/site-packages/ установлена правильная версия numpy и вы ее используете.
Ответ заключался в том, что fastparquet (пакет, который используется пандами) по какой-то причине использовал numpy более старый двоичный файл.
Обновление этого пакета помогло. Я предполагаю, что если кто-то еще столкнется с этой проблемой, попытаться обновить все связанные пакеты (которые используют numpy) будет правильным путем.
Я использую старую установку pandas (0.23.4) как часть стабильного процесса, но все периодически переустанавливается, и это перестало работать. Похоже на ту же проблему. В какой версии fastparquet эта проблема запускается и останавливается?
у меня сработало обновление до последней версии (0.2.1). Убедитесь, что stakctrace действительно ведет к fastparquet (это означает, что это фактический пакет, который вызывает проблему), как в моем случае
На самом деле было другое решение, так как fastparquet не был моей проблемой. Я установил numpy, затем pandas, и проблема была устранена. Я указал одни и те же версии в каждом случае, поэтому немного запутался, почему это действительно сработало.
У меня была такая же проблема с пандами. Эта проблема была решена с помощью следующего обходного пути:
pip uninstall --yes numpy
easy_install --upgrade numpy
TL; DR: если докер добавлять:
RUN pip install numpy
до вы устанавливаете pandas (возможно, просто ваш pip install -r requirements.txt) и он снова будет работать.
Я делаю это в docker build pandas в alpine и сталкиваюсь с той же проблемой, и она ТОЛЬКО выскочила (27 декабря 2018 г.) для сборки, которая раньше работала нормально.
это не было проблемой для меня, но похоже, что вы решили чью-то проблему, так что ура.
Первоначально это решило проблему для меня, но пару дней назад она снова появилась.
У меня была такая же проблема, и я попробовал все вышеперечисленные ответы (на момент написания). Единственное, что у меня сработало, это переход на pyarrow.
Затем я не забудьте указать движок pyarrow при использовании паркета в пандах. Хотя pandas должен по умолчанию использовать движок pyarrow до fastparquet в соответствии с документами.
pd.read_parquet('./path', engine='pyarrow')
ну на самом деле моя проблема была решена каким-то образом
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...
что означает, что проблема может заключаться в конфликте версий?
У меня была та же проблема, что и выше. Мое решение заключалось в установке Python 2.7 с официального сайта: https://www.python.org/downloads/release/python-2713/
Это было. Я понял проблему