Ich benutze Pandas in einem Container und erhalte folgende Fehlermeldung:
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
Ich las weiter andere Antworten dass diese Meldung angezeigt wird, wenn Pandas mit einer neueren numpy-Version verglichen werden, als der, die Sie installiert haben. Aber beide Pandas und Numpy zu aktualisieren, funktionierte nicht für mich. Ich habe versucht herauszufinden, ob ich einige Versionen von numpy habe, aber pip show numpy
scheint die neueste Version anzuzeigen.
Auf seltsame Weise geschieht dies nur, wenn ich mich lokal und nicht auf dem Server bereitstelle.
Irgendwelche Ideen, wie man das beheben kann? Oder zumindest das Debuggen meiner Numpy- und Pandas-Versionen (wenn es mehrere Versionen gibt, wie überprüfe ich das)?
Ich habe versucht: Beide Pakete zu aktualisieren und sie zu entfernen und erneut zu installieren. Keine Hilfe da.
Die Antwort war, dass fastparquet (ein Paket, das von Pandas verwendet wird) aus irgendeinem Grund eine numpy ältere Binärdatei verwendet. Das Aktualisieren dieses Pakets hat geholfen. Ich denke, wenn jemand anderes dieses Problem umgeht, ist es der richtige Weg, alle verwandten Pakete (die numpy verwenden) zu aktualisieren und zu aktualisieren
naja eigentlich wurde mein problem irgendwie gelöst von
pip uninstall numpy
pip install numpy
der wahre Prozess ist
➜ ~ 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...
was bedeutet, dass das Problem möglicherweise ein Versionskonflikt ist?
TLDR: Wenn Andock Hinzufügen:
RUN pip install numpy
vorher Sie installieren Pandas (wahrscheinlich nur Ihre Pip-Installation -r Requirements.txt) und es wird wieder funktionieren.
Ich mache das in Docker Building-Pandas in Alpine und stoße auf die gleiche Ausgabe, und es ist gerade aufgetaucht (27. Dezember 2018) für einen Build, der zuvor gut funktioniert hat.
Ich hatte das gleiche Problem wie oben. Meine Lösung war, Python 2.7 von der offiziellen Website zu installieren: https://www.python.org/downloads/release/python-2713/
Vergewissern Sie sich, dass auf /volumes/dependencies/site-packages/
die richtige Version von numpy installiert ist und Sie sie verwenden.
Ich hatte das gleiche Problem und versuchte alle obigen Antworten (zum Zeitpunkt des Schreibens). Das einzige, was für mich funktionierte, war auf pyarrow
umzusteigen.
Ich habe dann darauf geachtet, die pyarrow
-Engine anzugeben, wenn Sie Parkett in Pandas verwenden. Pandas sollten zwar vor den pyarrow
den fastparquet
-Modulen als Vorgabe dienen.
pd.read_parquet('./path', engine='pyarrow')