Pandas: Importieren von Pandas Breaks nach erfolgreicher Installation von Pandas mit Pip

Erstellt am 16. Juni 2017  ·  46Kommentare  ·  Quelle: pandas-dev/pandas

Codebeispiel, wenn möglich ein kopierfähiges Beispiel

> docker run --tty --interactive --rm python:2.7.12-alpine ash
/ # apk update
fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/community/x86_64/APKINDEX.tar.gz
v3.4.6-150-gf952adf [http://dl-cdn.alpinelinux.org/alpine/v3.4/main]
v3.4.6-83-g67e50bc [http://dl-cdn.alpinelinux.org/alpine/v3.4/community]
OK: 5983 distinct packages available
/ # apk add cython g++ musl-dev
(1/21) Upgrading musl (1.1.14-r12 -> 1.1.14-r14)
(2/21) Installing libffi (3.2.1-r2)
(3/21) Installing python (2.7.12-r0)
(4/21) Installing cython (0.24-r1)
(5/21) Installing libgcc (5.3.0-r0)
(6/21) Installing libstdc++ (5.3.0-r0)
(7/21) Installing binutils-libs (2.26-r1)
(8/21) Installing binutils (2.26-r1)
(9/21) Installing gmp (6.1.0-r0)
(10/21) Installing isl (0.14.1-r0)
(11/21) Installing libgomp (5.3.0-r0)
(12/21) Installing libatomic (5.3.0-r0)
(13/21) Installing pkgconf (0.9.12-r0)
(14/21) Installing pkgconfig (0.25-r1)
(15/21) Installing mpfr3 (3.1.2-r0)
(16/21) Installing mpc1 (1.0.3-r0)
(17/21) Installing gcc (5.3.0-r0)
(18/21) Installing musl-dev (1.1.14-r14)
(19/21) Installing libc-dev (0.7-r0)
(20/21) Installing g++ (5.3.0-r0)
(21/21) Upgrading musl-utils (1.1.14-r12 -> 1.1.14-r14)
Executing busybox-1.24.2-r11.trigger
OK: 230 MiB in 51 packages
/ # ln -s locale.h /usr/include/xlocale.h
/ # pip install numpy==1.11.3 pandas==0.20.2
Collecting numpy==1.11.3
  Downloading numpy-1.11.3.zip (4.7MB)
    100% |████████████████████████████████| 4.7MB 242kB/s 
Collecting pandas==0.20.2
  Downloading pandas-0.20.2.tar.gz (10.3MB)
    100% |████████████████████████████████| 10.3MB 124kB/s 
Collecting python-dateutil (from pandas==0.20.2)
  Downloading python_dateutil-2.6.0-py2.py3-none-any.whl (194kB)
    100% |████████████████████████████████| 194kB 994kB/s 
Collecting pytz>=2011k (from pandas==0.20.2)
  Downloading pytz-2017.2-py2.py3-none-any.whl (484kB)
    100% |████████████████████████████████| 491kB 874kB/s 
Collecting six>=1.5 (from python-dateutil->pandas==0.20.2)
  Downloading six-1.10.0-py2.py3-none-any.whl
Building wheels for collected packages: numpy, pandas
  Running setup.py bdist_wheel for numpy ... done
  Stored in directory: /root/.cache/pip/wheels/8f/d6/97/4cc26777ee05997164e480e2e5de2c9e9c4e32dfe325ea5bd6
  Running setup.py bdist_wheel for pandas ... done
  Stored in directory: /root/.cache/pip/wheels/fc/fd/0a/5857e8bee7d5cc3ca22228fb7ab5efa43be57c0f9103e54098
Successfully built numpy pandas
Installing collected packages: numpy, six, python-dateutil, pytz, pandas
Successfully installed numpy-1.11.3 pandas-0.20.2 python-dateutil-2.6.0 pytz-2017.2 six-1.10.0
You are using pip version 8.1.2, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
/ # python -c "import pandas"
RuntimeError: module compiled against API version 0xb but this version of numpy is 0xa
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/local/lib/python2.7/site-packages/pandas/__init__.py", line 35, in <module>
    "the C extensions first.".format(module))
ImportError: C extension: umpy.core.multiarray failed to import not built. If you want to import pandas from the source directory, you may need to run 'python setup.py build_ext --inplace --force' to build the C extensions first.

Problembeschreibung

Die Installation von Pandas mit pip ist erfolgreich, aber import pandas bricht ab.

Wenn ich zwei separate pip install Befehle ausgebe, einen für numpy und einen für pandas , funktioniert es:

> docker run --tty --interactive --rm python:2.7.12-alpine ash
/ # apk update
fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/community/x86_64/APKINDEX.tar.gz
v3.4.6-150-gf952adf [http://dl-cdn.alpinelinux.org/alpine/v3.4/main]
v3.4.6-83-g67e50bc [http://dl-cdn.alpinelinux.org/alpine/v3.4/community]
OK: 5983 distinct packages available
/ # apk add cython g++ musl-dev
(1/21) Upgrading musl (1.1.14-r12 -> 1.1.14-r14)
(2/21) Installing libffi (3.2.1-r2)
(3/21) Installing python (2.7.12-r0)
(4/21) Installing cython (0.24-r1)
(5/21) Installing libgcc (5.3.0-r0)
(6/21) Installing libstdc++ (5.3.0-r0)
(7/21) Installing binutils-libs (2.26-r1)
(8/21) Installing binutils (2.26-r1)
(9/21) Installing gmp (6.1.0-r0)
(10/21) Installing isl (0.14.1-r0)
(11/21) Installing libgomp (5.3.0-r0)
(12/21) Installing libatomic (5.3.0-r0)
(13/21) Installing pkgconf (0.9.12-r0)
(14/21) Installing pkgconfig (0.25-r1)
(15/21) Installing mpfr3 (3.1.2-r0)
(16/21) Installing mpc1 (1.0.3-r0)
(17/21) Installing gcc (5.3.0-r0)
(18/21) Installing musl-dev (1.1.14-r14)
(19/21) Installing libc-dev (0.7-r0)
(20/21) Installing g++ (5.3.0-r0)
(21/21) Upgrading musl-utils (1.1.14-r12 -> 1.1.14-r14)
Executing busybox-1.24.2-r11.trigger
OK: 230 MiB in 51 packages
/ # ln -s locale.h /usr/include/xlocale.h
/ # pip install numpy==1.11.3 
Collecting numpy==1.11.3
  Downloading numpy-1.11.3.zip (4.7MB)
    100% |████████████████████████████████| 4.7MB 221kB/s 
Building wheels for collected packages: numpy
  Running setup.py bdist_wheel for numpy ... done
  Stored in directory: /root/.cache/pip/wheels/8f/d6/97/4cc26777ee05997164e480e2e5de2c9e9c4e32dfe325ea5bd6
Successfully built numpy
Installing collected packages: numpy
Successfully installed numpy-1.11.3
You are using pip version 8.1.2, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
/ # pip install pandas==0.20.2
Collecting pandas==0.20.2
  Downloading pandas-0.20.2.tar.gz (10.3MB)
    100% |████████████████████████████████| 10.3MB 125kB/s 
Collecting python-dateutil (from pandas==0.20.2)
  Downloading python_dateutil-2.6.0-py2.py3-none-any.whl (194kB)
    100% |████████████████████████████████| 194kB 787kB/s 
Collecting pytz>=2011k (from pandas==0.20.2)
  Downloading pytz-2017.2-py2.py3-none-any.whl (484kB)
    100% |████████████████████████████████| 491kB 1.0MB/s 
Requirement already satisfied (use --upgrade to upgrade): numpy>=1.7.0 in /usr/local/lib/python2.7/site-packages (from pandas==0.20.2)
Collecting six>=1.5 (from python-dateutil->pandas==0.20.2)
  Downloading six-1.10.0-py2.py3-none-any.whl
Building wheels for collected packages: pandas
  Running setup.py bdist_wheel for pandas ... done
  Stored in directory: /root/.cache/pip/wheels/fc/fd/0a/5857e8bee7d5cc3ca22228fb7ab5efa43be57c0f9103e54098
Successfully built pandas
Installing collected packages: six, python-dateutil, pytz, pandas
Successfully installed pandas-0.20.2 python-dateutil-2.6.0 pytz-2017.2 six-1.10.0
You are using pip version 8.1.2, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
/ # python -c "import pandas"

Hilfreichster Kommentar

@jlbooker hat ein Problem geöffnet, um dies hier zu verfolgen: https://github.com/pandas-dev/pandas/issues/18530
Hoffentlich können wir das schnell beheben

Alle 46 Kommentare

Sieht ziemlich ähnlich aus wie https://github.com/pandas-dev/pandas/issues/11383#issuecomment -294242777

Können Sie mit dem ausführlichen Modus versuchen, zu sehen, welche Version von numpy it pip packt, wenn Sie sie gleichzeitig ausführen?

Es sieht so aus, als würde es numpy 1.13.0 :

gcc -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -Ipandas/_libs/src/klib -Ipandas/_libs/src -I/tmp/pip-build-WbJa3a/pandas/.eggs/numpy-1.13.0-py2.7-linux-x86_64.egg/numpy/core/include -I/usr/local/include/python2.7 -c pandas/_libs/testing.c -o build/temp.linux-x86_64-2.7/pandas/_libs/testing.o -Wno-unused-function
  gcc -shared build/temp.linux-x86_64-2.7/pandas/_libs/testing.o -L/usr/local/lib -lpython2.7 -o build/lib.linux-x86_64-2.7/pandas/_libs/testing.so
  building 'pandas._libs.lib' extension
  gcc -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -Ipandas/_libs/src/klib -Ipandas/_libs/src -I/tmp/pip-build-WbJa3a/pandas/.eggs/numpy-1.13.0-py2.7-linux-x86_64.egg/numpy/core/include -I/usr/local/include/python2.7 -c pandas/_libs/lib.c -o build/temp.linux-x86_64-2.7/pandas/_libs/lib.o -Wno-unused-function
  In file included from /tmp/pip-build-WbJa3a/pandas/.eggs/numpy-1.13.0-py2.7-linux-x86_64.egg/numpy/core/include/numpy/ndarraytypes.h:1809:0,
                   from /tmp/pip-build-WbJa3a/pandas/.eggs/numpy-1.13.0-py2.7-linux-x86_64.egg/numpy/core/include/numpy/ndarrayobject.h:18,
                   from /tmp/pip-build-WbJa3a/pandas/.eggs/numpy-1.13.0-py2.7-linux-x86_64.egg/numpy/core/include/numpy/arrayobject.h:4,
                   from pandas/_libs/lib.c:435:
  /tmp/pip-build-WbJa3a/pandas/.eggs/numpy-1.13.0-py2.7-linux-x86_64.egg/numpy/core/include/numpy/npy_1_7_deprecated_api.h:15:2: warning: #warning "Using deprecated NumPy API, disable it by " "#defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]

Vielleicht versuchen Sie dann, über den Pip Issue Tracker zu berichten. Es ist möglich, dass mit unserer setup.py etwas nicht stimmt, aber ein Bug-Pip oder Setuptools scheint wahrscheinlicher zu sein.

@rvernica Gibt es einen bestimmten Grund, warum Sie Pandas aus dem Quellcode

Ah, ich habe nicht gesehen, dass die Pip-Version so alt ist. Vielleicht ist es dann schon behoben.

@jorisvandenbossche Ich mache nur pip install , pip entscheidet sich dafür, es aus der Quelle zu erstellen, wahrscheinlich weil es kein Rad gibt.

Ich habe zuerst versucht, pip aktualisieren:

/ # pip install --upgrade pip
Collecting pip
  Downloading pip-9.0.1-py2.py3-none-any.whl (1.3MB)
    100% |████████████████████████████████| 1.3MB 480kB/s 
Installing collected packages: pip
  Found existing installation: pip 8.1.2
    Uninstalling pip-8.1.2:
      Successfully uninstalled pip-8.1.2
Successfully installed pip-9.0.1

Aber das Ergebnis ist das gleiche, pip erfolgreich, aber import pandas schlägt fehl.

Es sollte auf jeden Fall ein Rad für pandas-0.20.2 geben, also bin ich mir nicht sicher, warum es nicht heruntergeladen wird.

Aber um welches System handelt es sich? Es ist möglicherweise nicht mit den Anforderungen von manylinux kompatibel.

Aber es ist tatsächlich das gleiche Problem wie in https://github.com/pandas-dev/pandas/issues/11383. Wenn Sie also eine Installation von der Quelle durchführen, bricht die Installation mit pip , wenn Sie versuchen, numpy und pandas auf einmal zu installieren (und wenn Sie nicht die neueste Version von numpy installieren). Der Grund dafür ist, dass pip Pandas in einer separaten Umgebung zu erstellen scheint, für die es das neueste numpy verwendet, aber in der tatsächlichen Umgebung ist eine ältere Version von numpy installiert und daher die Fehler. Die Lösung besteht darin, dies in zwei Schritten zu tun (dann ist numpy bereits installiert, und beim Erstellen von Pandas wird es verwendet und kein weiteres abgerufen).
Also ist entweder Pip für diesen Anwendungsfall einfach kaputt, oder wir machen etwas falsch in unserer setup.py (aber kein Experte dafür)

Macht Sinn. Das System ist Alpine Linux 3.4.

@rvernica hast du dies im Pip Issue Tracker gemeldet? Ich nahm an, dass ich dies mit der Option --no-binary reproduzieren könnte, aber das hat die richtige numpy-Version heruntergezogen.

Nein, ich hatte keine Gelegenheit, es zu melden.

Ich nahm an, dass ich dies mit der Option --no-binary reproduzieren könnte, aber das hat die richtige numpy-Version heruntergezogen.

@TomAugspurger hast du eine ältere Version von numpy angegeben? (da dies zum Auslösen benötigt wird, zB pip install numpy==1.11 pandas==0.20 )

Ja, ich habe pip install numpy==1.11.3 pandas==0.20.2 --no-binary=':all:' --verbose in eine saubere Umgebung gebracht.

OK, ich werde dies nicht im Upstream melden, da https://github.com/pypa/pip/issues/3691 (implementiert in https://github.com/pypa/pip/pull/4144) die richtige Lösung ist. Lassen Sie uns das versuchen.

Es ist möglich, dass die Versionsinformationen für den Build-Schritt trotzdem ignoriert werden. In diesem Fall sollten wir sie an pip melden. Ich mache eine PR und füge die pyproject.toml

Ich bin mir nicht sicher, ob PEP518 daran etwas ändern wird, da das Problem weiterhin besteht, dass im Moment, in dem Sie das Panda-Rad bauen (mit der Angabe von numpy>0.17 aus der pyproject.toml, die die neueste Version 1.13 herunterlädt, dies nicht der Fall ist). scheinen die genaue numpy-Version zu kennen, die gleichzeitig installiert ist (und daher älter sein kann als die im Laufradbau-Schritt verwendete)

Sollten wir die numpy-Version tatsächlich an die älteste unterstützte Version anheften, die im Build-System erforderlich ist? (Was machen wir in der Praxis, wenn wir Räder bauen, um sie zu verteilen?) Da dies in einer isolierten Umgebung geschieht, sollte es Ihre tatsächliche Umgebung nicht beeinflussen

Immer noch Probleme, eine Lösung?

Hast du die Kommentare oben gelesen? Versuchen Sie, Numpy und Pandas in zwei separaten Schritten zu installieren. Und ansonsten müssen Sie viel mehr Details zu Ihrem spezifischen Problem angeben.

Hallo,
Ich habe auch manuell installiert (Hinweis: nur bereits die gleiche Version), indem ich "pip install numpy==1.12.0 pandas==0.21.0" verwendet habe.

Obwohl nach, während Python -c "Pandas importieren" einen Fehler wie

"Zuerst die C-Erweiterungen.".format(module))
ImportError: C-Erweiterung: numpy.core.multiarray konnte nicht importiert werden, nicht erstellt. Wenn Sie Pandas aus dem Quellverzeichnis importieren möchten, müssen Sie möglicherweise zuerst 'python setup.py build_ext --inplace --force' ausführen, um die C-Erweiterungen zu erstellen.

Wie ich oben sagte und bitte die Kommentare oben lesen, wenn es das gleiche Problem ist, müssen Sie sie separat installieren, also pip install numpy=1.12.0 und dann pip install pandas=0.21.0

@jorisvandenbossche Ich habe es

sudo pip install numpy==1.12.0
Voraussetzung bereits erfüllt: numpy==1.12.0 in /usr/local/lib/python2.7/dist-packages
ubuntu @ocata :~/devstack$ sudo pip install pandas==0.21.0
Voraussetzung bereits erfüllt: pandas==0.21.0 in /usr/local/lib/python2.7/dist-packages
Voraussetzung bereits erfüllt: pytz>=2011k in /usr/local/lib/python2.7/dist-packages (von pandas==0.21.0)
Voraussetzung bereits erfüllt: numpy>=1.9.0 in /usr/local/lib/python2.7/dist-packages (von pandas==0.21.0)
Voraussetzung bereits erfüllt: python-dateutil in /usr/local/lib/python2.7/dist-packages (ab pandas==0.21.0)
Anforderung bereits erfüllt: sechs>=1.5 in /usr/local/lib/python2.7/dist-packages (von python-dateutil->pandas==0.21.0)
ubuntu@ocata :~/devstack$ python -c "Pandas importieren"
RuntimeError: Modul gegen API-Version 0xb kompiliert, aber diese Version von numpy ist 0xa
Traceback (letzter Anruf zuletzt):
Datei "", Zeile 1, in
Datei "/usr/local/lib/python2.7/dist-packages/pandas/__init__.py", Zeile 35, in
"Zuerst die C-Erweiterungen.".format(module))
ImportError: C-Erweiterung: numpy.core.multiarray konnte nicht importiert werden, nicht erstellt. Wenn Sie Pandas aus dem Quellverzeichnis importieren möchten, müssen Sie möglicherweise zuerst 'python setup.py build_ext --inplace --force' ausführen, um die C-Erweiterungen zu erstellen.

Sie müssen viel genauere Angaben machen. ZB die vollständige Konsolenausgabe der verschiedenen Schritte, die Sie durchgeführt haben, idealerweise mit einer ausführlichen Option, einigen Informationen über die Umgebung (welches Betriebssystem, Python-Version, ...), warum Sie von der Quelle und nicht von Rädern installieren, ...

Python 2.7.12
Betriebssystem: Ubuntu 16.04 xenial

Ich muss Gnocchi gemäß http://gnocchi.xyz/install.html#installation -using-devstack installieren, nachdem ich das Plugin hinzugefügt habe, lief ./stack.sh, wo die Gnocchi-Installation https://github.com/gnocchixyz/ gnocchi hat Panda-Abhängigkeiten, wenn es versucht, Pandas zu installieren / zu importieren, die einen Fehler erhalten

Hier die Gnocchi-Dateiabhängigkeiten von Pandas https://github.com/gnocchixyz/gnocchi/blob/ffbb446f3f12d637a6ff45b3eb522191638e8be0/tools/duration_perf_analyse.py#L37

Angenommen, ich muss Pandas installieren, ich muss in einem separaten Verzeichnis klonen und ihre Module verwenden, wenn ich in einem Verzeichnis installiert habe und versuche, von einem externen Verzeichnis zu importieren, wird es nicht identifiziert, wo ich kann Importiere Module, die alle unter /python/dist-packages/ liegen, egal wo sie für das Quellverzeichnis irrelevant sind

sudo pip install pandas
Anforderung bereits erfüllt: Pandas in /usr/local/lib/python2.7/dist-packages
Voraussetzung bereits erfüllt: pytz>=2011k in /usr/local/lib/python2.7/dist-packages (von pandas)
Voraussetzung bereits erfüllt: numpy>=1.9.0 in /usr/local/lib/python2.7/dist-packages (von pandas)
Voraussetzung bereits erfüllt: python-dateutil in /usr/local/lib/python2.7/dist-packages (von pandas)
Anforderung bereits erfüllt: sechs>=1.5 in /usr/local/lib/python2.7/dist-packages (von python-dateutil->pandas)
ubuntu@ocata :/usr/local/lib/python2.7/dist-packages$ python -c "Pandas importieren"
RuntimeError: Modul gegen API-Version 0xb kompiliert, aber diese Version von numpy ist 0xa
Traceback (letzter Anruf zuletzt):
Datei "", Zeile 1, in
Datei "pandas/__init__.py", Zeile 35, in
"Zuerst die C-Erweiterungen.".format(module))
ImportError: C-Erweiterung: numpy.core.multiarray konnte nicht importiert werden, nicht erstellt. Wenn Sie Pandas aus dem Quellverzeichnis importieren möchten, müssen Sie möglicherweise zuerst 'python setup.py build_ext --inplace --force' ausführen, um die C-Erweiterungen zu erstellen.

@jorisvandenbossche teilen Sie mir die erforderlichen Details mit, falls vorhanden

Die letzte Protokollausgabe sagt "Anforderung bereits erfüllt: Pandas", also installieren Sie es nicht wirklich.
Stellen Sie außerdem sicher, dass pip auf dasselbe Python verweist (zB do python -m pip ), und warum importieren Sie Pandas aus Dist-Paketen?

@jorisvandenbossche s "Anforderung bereits erfüllt: Pandas" - Da ich, wie du angezeigt .

warum importierst du pandas aus dist-packages? -->> Ich habe es von überall versucht, es läuft nicht.

Lassen Sie mich wissen, wie man Pandas in Ubuntu 16.04 installiert, wobei Python 2.7 ist.

ab sofort in frischer maschine habe ich installiert

pip install numpy==1.12.0 und dann pip install pandas==0.21.0,

Nach der Installation wird der gleiche Fehler angezeigt

pip install numpy==1.12.0 und dann pip install pandas==0.21.0, nach der Installation wird der gleiche Fehler angezeigt

Zeigen Sie dann das vollständige Protokoll davon an (und kein Protokoll, das tatsächlich nichts installiert, Sie müssen dies von einer neuen Umgebung aus tun, in der numpy und pandas noch nicht installiert sind)

@jorisvandenbossche hier in frischer Maschineninstallation

sudo pip install pandas
Pandas sammeln
Zwischengespeicherte pandas verwenden-0.21.0-cp27-cp27mu-manylinux1_x86_64.whl
Voraussetzung bereits erfüllt: pytz>=2011k in /usr/local/lib/python2.7/dist-packages (von pandas)
Anforderung bereits erfüllt: numpy>=1.9.0 in /usr/lib/python2.7/dist-packages (von pandas)
Voraussetzung bereits erfüllt: python-dateutil in /usr/local/lib/python2.7/dist-packages (von pandas)
Anforderung bereits erfüllt: sechs>=1.5 in /usr/local/lib/python2.7/dist-packages (von python-dateutil->pandas)
Gesammelte Pakete installieren: Pandas
Pandas-0.21.0 . erfolgreich installiert

ubuntu@ocata :~$ sudo pip install numpy
Voraussetzung bereits erfüllt: numpy in /usr/lib/python2.7/dist-packages

ubuntu@ocata :~$ python -c "Pandas importieren"
RuntimeError: Modul gegen API-Version 0xb kompiliert, aber diese Version von numpy ist 0xa
Traceback (letzter Anruf zuletzt):
Datei "", Zeile 1, in
Datei "/usr/local/lib/python2.7/dist-packages/pandas/__init__.py", Zeile 35, in
"Zuerst die C-Erweiterungen.".format(module))
ImportError: C-Erweiterung: numpy.core.multiarray konnte nicht importiert werden, nicht erstellt. Wenn Sie Pandas aus dem Quellverzeichnis importieren möchten, müssen Sie möglicherweise zuerst 'python setup.py build_ext --inplace --force' ausführen, um die C-Erweiterungen zu erstellen.

Sie sollten numpy vor pandas installieren (obwohl es in diesem Fall keine Rolle gespielt hätte, da numpy sich nicht selbst installiert hat, da es bereits installiert war). Können Sie das gleiche zeigen, aber mit der Neuinstallation von Numpy und Pandas (und Numpy zuerst)?
Übrigens, funktioniert das Importieren von numpy?

@jorisvandenbossche hat numpy zuerst installiert, es funktioniert gut zum Importieren, installierte Pandas und das Importieren ist in Ordnung, aber während ./stack.sh gemäß Gnocchi ausgeführt wird, ist das Importieren von Pandas ein Fehler, bei dem import numpy in Ordnung ist

Ihr sudo python kann sich von Ihrem python . Verwenden Sie python -m pip install ... und verwenden Sie nur sudo wenn es notwendig ist.

@TomAugspurger ich habe nicht beides kombiniert, ich habe Pandas mit pip install installiert, keine Probleme bei der Installation,

Hier meine Frage; ob numpy=1.12.0 mit pandas=0.21.0 kompatibel ist

oder was ist das kompatible?

Ich habe Numpy neueste und Pandas neueste ausprobiert. Funktioniert immer noch nicht, gibt es ein Kompatibilitätsproblem? oder beste kompatible Numpy & Pandas-Version?

@maestropandy schau dir deine Wege an:

sudo pip install pandas
Collecting pandas
Using cached pandas-0.21.0-cp27-cp27mu-manylinux1_x86_64.whl
Requirement already satisfied: pytz>=2011k in /usr/local/lib/python2.7/dist-packages (from pandas)
ubuntu<strong i="9">@ocata</strong>:~$ sudo pip install numpy
Requirement already satisfied: numpy in /usr/lib/python2.7/dist-packages

Das erste ist /usr/local/lib , das zweite ist /usr/lib , also ist etwas nicht in Ordnung. Ihre Ausnahme kommt vom Python in usr/local/lib .

@TomAugspurger Wird "sudo python -m pip install numpy" in /usr/local/lib/ installiert? Werde es ausprobieren.

Lassen Sie mich auch wissen, ob es ein Kompatibilitätsproblem mit numpy & pandas gibt, weil ich numpy>=1.9.0 & pandas>=0.18.0 installiert habe, was sowohl die neuesten Versionen von numpy als auch pandas bedeutet, aber kompatibel zu sein scheint?

Lassen Sie mich auch wissen, ob es ein Kompatibilitätsproblem mit Numpy & Pandas gibt.

Es besteht keine Inkompatibilität zwischen den von Ihnen genannten Versionen im Allgemeinen. Das Problem ist, wie Sie beide installieren.

Es gibt ein Problem mit der neuen Panda-Version. Bis das Problem behoben ist, verwenden Sie pip install pandas==0.20.2

@abishekg2389 können Sie weitere Informationen bereitstellen? Wenn es ein Problem mit unseren Build-Dateien gibt, würden wir gerne wissen.

Ich sehe ein ähnliches (gleiches?) Problem unter Fedora 25.

$ python --version
Python 2.7.13
$ which python
/usr/bin/python



md5-c7b975f7c1ac4eb89f5fe68ce1d09cd7



$ sudo pip install pandas
[sudo] password for .....:
Requirement already satisfied: pandas in /usr/lib64/python2.7/site-packages
Requirement already satisfied: pytz>=2011k in /usr/lib/python2.7/site-packages (from pandas)
Requirement already satisfied: python-dateutil in /usr/lib/python2.7/site-packages (from pandas)
Requirement already satisfied: numpy>=1.9.0 in /usr/lib64/python2.7/site-packages (from pandas)
Requirement already satisfied: six>=1.5 in /usr/lib/python2.7/site-packages (from python-dateutil->pandas)

$ sudo pip install numpy
Requirement already satisfied: numpy in /usr/lib64/python2.7/site-packages



md5-79f115fb1bb7ca0fecb38162c5f341da



$ python testPandas.py 
RuntimeError: module compiled against API version 0xb but this version of numpy is 0xa
Traceback (most recent call last):
  File "runProphet.py", line 1, in <module>
    import pandas as pd
  File "/usr/lib64/python2.7/site-packages/pandas/__init__.py", line 35, in <module>
    "the C extensions first.".format(module))
ImportError: C extension: numpy.core.multiarray failed to import not built. If you want to import pandas from the source directory, you may need to run 'python setup.py build_ext --inplace --force' to build the C extensions first.



md5-fca2a04366ebb14ff185882c94092f99



$ sudo pip install pandas==0.20.2
[sudo] password for jbooker: 
Collecting pandas==0.20.2
  Downloading pandas-0.20.2-cp27-cp27mu-manylinux1_x86_64.whl (22.4MB)
    100% |████████████████████████████████| 22.4MB 79kB/s 
Requirement already satisfied: pytz>=2011k in /usr/lib/python2.7/site-packages (from pandas==0.20.2)
Requirement already satisfied: numpy>=1.7.0 in /usr/lib64/python2.7/site-packages (from pandas==0.20.2)
Requirement already satisfied: python-dateutil in /usr/lib/python2.7/site-packages (from pandas==0.20.2)
Requirement already satisfied: six>=1.5 in /usr/lib/python2.7/site-packages (from python-dateutil->pandas==0.20.2)
Installing collected packages: pandas
  Found existing installation: pandas 0.21.0
    Uninstalling pandas-0.21.0:
      Successfully uninstalled pandas-0.21.0
Successfully installed pandas-0.20.2

Welche Version von numpy ist installiert? Und können Sie die Ausgabe der Installation von Pandas 0.21.0 anzeigen? (die von Ihnen angezeigte wird nicht installiert, da sie zu diesem Zeitpunkt bereits installiert ist)

$ pip show numpy
Name: numpy
Version: 1.11.2
Summary: NumPy: array processing for numbers, strings, records, and objects.
Home-page: http://www.numpy.org
Author: NumPy Developers
Author-email: [email protected]
License: BSD
Location: /usr/lib64/python2.7/site-packages

Ich scheine nicht die Ausgabe von der Installation von Pandas 0.21.0 zu haben. Es scheint, dass es bereits auf meinem System installiert war (??). Ich sehe kein RPM-Paket, daher wurde es nicht über yum/dnf-Systempakete installiert.

Ich habe versucht, das Prophet-Paket von Facebook zu installieren (hat eine Abhängigkeit von Pandas und Numpy), und es wurde festgestellt, dass Pandas 0.18.1 bereits installiert war. Interessant, dass es 0.18.1 und nicht 0.21.0 ist.

$ sudo pip install fbprophet
Collecting fbprophet
  Using cached fbprophet-0.2.1.tar.gz
Requirement already satisfied: matplotlib in /usr/lib64/python2.7/site-packages (from fbprophet)
Requirement already satisfied: pandas>=0.18.1 in /usr/lib64/python2.7/site-packages (from fbprophet)
Requirement already satisfied: pystan>=2.14 in /usr/lib64/python2.7/site-packages (from fbprophet)
Requirement already satisfied: cycler>=0.10 in /usr/lib/python2.7/site-packages (from matplotlib->fbprophet)
Requirement already satisfied: subprocess32 in /usr/lib64/python2.7/site-packages (from matplotlib->fbprophet)
Requirement already satisfied: pytz in /usr/lib/python2.7/site-packages (from matplotlib->fbprophet)
Requirement already satisfied: six>=1.10 in /usr/lib/python2.7/site-packages (from matplotlib->fbprophet)
Requirement already satisfied: backports.functools-lru-cache in /usr/lib/python2.7/site-packages (from matplotlib->fbprophet)
Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/lib/python2.7/site-packages (from matplotlib->fbprophet)
Requirement already satisfied: numpy>=1.7.1 in /usr/lib64/python2.7/site-packages (from matplotlib->fbprophet)
Requirement already satisfied: python-dateutil>=2.0 in /usr/lib/python2.7/site-packages (from matplotlib->fbprophet)
Requirement already satisfied: Cython!=0.25.1,>=0.22 in /usr/lib64/python2.7/site-packages (from pystan>=2.14->fbprophet)
Installing collected packages: fbprophet
  Running setup.py install for fbprophet ... done
Successfully installed fbprophet-0.2.1

Ohne zu wissen, wie Pandas installiert wurde, ist es schwer zu helfen. Möchten Sie Pandas erneut auf 0.21.0 aktualisieren, um zu sehen, ob das funktioniert, und die Ausgabe protokollieren?

Interessant, dass es 0.18.1 und nicht 0.21.0 ist.

Es sagt nur, dass es >=0,18,1 ist, also kann es 0,21,0 sein

Ahh richtig. Ich habe das '>=' verpasst. Nur, dass es die Anforderung erfüllt, nicht die spezifische Version.

Es wurde erneut versucht, auf 0.21.0 zu aktualisieren, wodurch der Fehler beim Importieren erneut erstellt wurde (die Installation funktioniert jedoch einwandfrei):

$ sudo pip install pandas==0.21.0
[sudo] password for jbooker: 
Collecting pandas==0.21.0
  Using cached pandas-0.21.0-cp27-cp27mu-manylinux1_x86_64.whl
Requirement already satisfied: pytz>=2011k in /usr/lib/python2.7/site-packages (from pandas==0.21.0)
Requirement already satisfied: python-dateutil in /usr/lib/python2.7/site-packages (from pandas==0.21.0)
Requirement already satisfied: numpy>=1.9.0 in /usr/lib64/python2.7/site-packages (from pandas==0.21.0)
Requirement already satisfied: six>=1.5 in /usr/lib/python2.7/site-packages (from python-dateutil->pandas==0.21.0)
Installing collected packages: pandas
  Found existing installation: pandas 0.20.2
    Uninstalling pandas-0.20.2:
      Successfully uninstalled pandas-0.20.2
Successfully installed pandas-0.21.0

Testskript:

import pandas as pd
import numpy as np

print "Hello, world."

Gibt den Fehler erneut aus:

$ python testPandas.py 
RuntimeError: module compiled against API version 0xb but this version of numpy is 0xa
Traceback (most recent call last):
  File "runProphet.py", line 1, in <module>
    import pandas as pd
  File "/usr/lib64/python2.7/site-packages/pandas/__init__.py", line 35, in <module>
    "the C extensions first.".format(module))
ImportError: C extension: numpy.core.multiarray failed to import not built. If you want to import pandas from the source directory, you may need to run 'python setup.py build_ext --inplace --force' to build the C extensions first.

Das Downgrade auf 0.20.2 hat gut funktioniert und das Testskript wird danach erfolgreich ausgeführt.

Kann ich noch etwas tun, um das einzugrenzen?

Okay, das kann ich tatsächlich reproduzieren. Danke für den Bericht!
Erneutes Öffnen dieses Problems, jedoch als neues Problem (da das ursprüngliche Problem hier etwas anderes war, wurde aus der Quelle erstellt)

@jlbooker hat ein Problem geöffnet, um dies hier zu verfolgen: https://github.com/pandas-dev/pandas/issues/18530
Hoffentlich können wir das schnell beheben

für mich wurde dieses Problem dadurch behoben, dass Pandas selbst deinstalliert und neu installiert wurden

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen