Pandas: la importación de pandas se rompe después de instalar con éxito pandas con pip

Creado en 16 jun. 2017  ·  46Comentarios  ·  Fuente: pandas-dev/pandas

Ejemplo de código, si es posible, un ejemplo que se puede copiar y pegar

> 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.

Descripción del problema

La instalación de Pandas con pip es exitosa, pero import pandas rompe.

Si emito dos comandos pip install separados, uno para numpy y otro para pandas , funciona:

> 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"

Comentario más útil

@jlbooker abrió un problema para rastrear esto aquí: https://github.com/pandas-dev/pandas/issues/18530
Ojalá podamos arreglar esto rápidamente

Todos 46 comentarios

Parece bastante similar a https://github.com/pandas-dev/pandas/issues/11383#issuecomment -294242777

¿Puedes probar con el modo detallado para ver qué versión de numpy se agarra pip cuando las haces al mismo tiempo?

Parece que está recogiendo 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]

Entonces, tal vez intente informar sobre el rastreador de problemas de pip. Es posible que haya algo mal con nuestro setup.py, pero parece más probable un error pip o setuptools.

@rvernica, ¿hay una razón específica por la que está creando pandas desde la fuente, en lugar de descargar e instalar la rueda? Porque con la rueda, creo que debería instalarse sin problemas.

Ah, no vi que la versión pip fuera tan antigua. Puede que ya esté arreglado entonces.

@jorisvandenbossche Solo estoy haciendo pip install , pip elige construirlo desde la fuente probablemente porque no hay rueda.

Intenté actualizar pip primero:

/ # 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

Pero el resultado es el mismo, pip tiene éxito pero import pandas falla.

Ciertamente debería haber una rueda para pandas-0.20.2, así que no estoy seguro de por qué no lo está descargando.

Sin embargo, ¿qué sistema es? Quizás no sea compatible con los requisitos de manylinux .

Pero de hecho es el mismo problema que en https://github.com/pandas-dev/pandas/issues/11383. Entonces, cuando realice la instalación desde la fuente, instale con pip breaks si intenta instalar numpy y pandas de una vez (y si no está instalando la última versión de numpy). La razón es que pip parece construir pandas en un entorno separado para el que usa el último numpy, pero en el entorno real se instala una versión anterior de numpy y, por lo tanto, los errores. La solución es hacerlo en dos pasos (luego numpy ya está instalado, y cuando construya pandas lo usará y no buscará otro).
Entonces, o pip está roto para este caso de uso, o hacemos algo mal en nuestro setup.py (pero no somos expertos en eso)

Tiene sentido. El sistema es Alpine Linux 3.4.

@rvernica , ¿informó esto en el rastreador de problemas de pip? Supuse que podría reproducir esto con la opción --no-binary , pero eso eliminó la versión correcta.

No, no tuve la oportunidad de denunciarlo.

Supuse que podría reproducir esto con la opción --no-binary, pero eso eliminó la versión correcta.

@TomAugspurger , ¿especificó una versión anterior de numpy? (ya que es necesario para activarlo, por ejemplo, pip install numpy==1.11 pandas==0.20 )

Sí, hice pip install numpy==1.11.3 pandas==0.20.2 --no-binary=':all:' --verbose en un ambiente limpio.

De acuerdo, no voy a informar esto en sentido ascendente ya que https://github.com/pypa/pip/issues/3691 (implementado en https://github.com/pypa/pip/pull/4144) es la solución correcta. Démosle una oportunidad.

Es posible que la información de la versión aún se ignore para el paso de compilación, en cuyo caso debemos informar a pip. Haré un PR agregando el pyproject.toml

No estoy seguro de que PEP518 vaya a cambiar algo sobre esto, porque el problema sigue siendo que en el momento en que construye la rueda de pandas (con la especificación de numpy> 0.17 de pyproject.toml, que descargará la última versión 1.13) no lo hace parece saber acerca de la versión numérica exacta que se instala al mismo tiempo (y, por lo tanto, puede ser más antigua que la utilizada en el paso de construcción de la rueda)

¿Deberíamos anclar la versión numpy a la más antigua compatible con los requisitos del sistema de compilación? (¿Qué hacemos en la práctica cuando construimos ruedas para distribuir?) Dado que esto se hace en un entorno aislado, no debería influir en su entorno real.

¿Sigues teniendo problemas, alguna solución?

¿Leíste los comentarios de arriba? Intente instalar numpy y pandas en dos pasos separados. Y de lo contrario, deberá proporcionar muchos más detalles sobre el problema específico que tiene.

Hola,
También lo he instalado manualmente (nota: ya es la misma versión solamente), usando "pip install numpy == 1.12.0 pandas == 0.21.0"

Aunque después, mientras hacía python -c "importar pandas" obteniendo el error como

"las extensiones C primero". formato (módulo))
ImportError: extensión C: numpy.core.multiarray no pudo importar no construido. Si desea importar pandas desde el directorio de origen, es posible que deba ejecutar 'python setup.py build_ext --inplace --force' para compilar primero las extensiones C.

Como dije anteriormente y lea los comentarios anteriores, si es el mismo problema, debe instalarlos por separado, entonces pip install numpy=1.12.0 y luego pip install pandas=0.21.0

@jorisvandenbossche Lo he instalado por separado, sigue siendo el mismo error. Lo hice al revés. He clonado pandas en un directorio separado e instalado pandas, donde puedo importar pandas, pero cuando hago lo mismo desde el directorio externo, no es así, siempre ha buscado la ruta del directorio de origen para ejecutar

sudo pip install numpy == 1.12.0
Requisito ya satisfecho: numpy == 1.12.0 en /usr/local/lib/python2.7/dist-packages
ubuntu @ocata : ~ / devstack $ sudo pip install pandas == 0.21.0
Requisito ya satisfecho: pandas == 0.21.0 en /usr/local/lib/python2.7/dist-packages
Requisito ya satisfecho: pytz> = 2011k en /usr/local/lib/python2.7/dist-packages (de pandas == 0.21.0)
Requisito ya satisfecho: numpy> = 1.9.0 en /usr/local/lib/python2.7/dist-packages (de pandas == 0.21.0)
Requisito ya satisfecho: python-dateutil en /usr/local/lib/python2.7/dist-packages (de pandas == 0.21.0)
Requisito ya satisfecho: seis> = 1.5 en /usr/local/lib/python2.7/dist-packages (de python-dateutil-> pandas == 0.21.0)
ubuntu @ ocata : ~ / devstack $ python -c "importar pandas"
RuntimeError: módulo compilado contra API versión 0xb pero esta versión de numpy es 0xa
Rastreo (llamadas recientes más última):
Archivo "", línea 1, en
Archivo "/usr/local/lib/python2.7/dist-packages/pandas/__init__.py", línea 35, en
"las extensiones C primero". formato (módulo))
ImportError: extensión C: numpy.core.multiarray no pudo importar no construido. Si desea importar pandas desde el directorio de origen, es posible que deba ejecutar 'python setup.py build_ext --inplace --force' para compilar primero las extensiones C.

Necesita dar información mucho más detallada. Por ejemplo, la salida completa de la consola de los diferentes pasos que realizó, idealmente con alguna opción detallada, información sobre el entorno (qué sistema operativo, versión de Python, ...), por qué está instalando desde la fuente y no desde las ruedas, ...

Python 2.7.12
SO: ubuntu 16.04 xenial

Necesito instalar gnocchi, según http://gnocchi.xyz/install.html#installation -using-devstack, después de agregar el complemento, ejecuté ./stack.sh, donde la instalación de gnocchi https://github.com/gnocchixyz/ gnocchi tiene dependencias de pandas, cuando intenta instalar / importar pandas, obtiene un error

Aquí las dependencias del archivo gnocchi de pandas https://github.com/gnocchixyz/gnocchi/blob/ffbb446f3f12d637a6ff45b3eb522191638e8be0/tools/duration_perf_analyse.py#L37

De otra manera, solo asuma que necesito instalar pandas, tengo que clonar en un directorio separado y usar sus módulos, si instalé en un directorio e intento importar desde el directorio externo, no se identifica, donde puedo importar módulos que están todos en / python / dist-packages / en cualquier lugar irrelevante para el directorio de origen

sudo pip instalar pandas
Requisito ya satisfecho: pandas en /usr/local/lib/python2.7/dist-packages
Requisito ya satisfecho: pytz> = 2011k en /usr/local/lib/python2.7/dist-packages (de pandas)
Requisito ya satisfecho: numpy> = 1.9.0 en /usr/local/lib/python2.7/dist-packages (de pandas)
Requisito ya satisfecho: python-dateutil en /usr/local/lib/python2.7/dist-packages (de pandas)
Requisito ya satisfecho: seis> = 1.5 en /usr/local/lib/python2.7/dist-packages (de python-dateutil-> pandas)
ubuntu @ ocata : /usr/local/lib/python2.7/dist-packages$ python -c "importar pandas"
RuntimeError: módulo compilado contra API versión 0xb pero esta versión de numpy es 0xa
Rastreo (llamadas recientes más última):
Archivo "", línea 1, en
Archivo "pandas / __ init__.py", línea 35, en
"las extensiones C primero". formato (módulo))
ImportError: extensión C: numpy.core.multiarray no pudo importar no construido. Si desea importar pandas desde el directorio de origen, es posible que deba ejecutar 'python setup.py build_ext --inplace --force' para compilar primero las extensiones C.

@jorisvandenbossche avíseme los detalles necesarios, si corresponde

La última salida del registro dice "Requisito ya satisfecho: pandas", por lo que en realidad no lo está instalando.
Además, asegúrese de que pip haga referencia a la misma pitón (por ejemplo, haga python -m pip ), y ¿por qué está importando pandas desde paquetes dist?

@jorisvandenbossche s "Requisito ya satisfecho: pandas" - Debido a que lo instalé por separado como dijiste, cuando intento hacerlo de nuevo, definitivamente se mostrará así.

¿Por qué está importando pandas desde dist-packages? - >> Lo intenté desde todas partes, no se está ejecutando.

Déjame saber cómo instalar pandas en ubuntu 16.04 donde python es 2.7.

a partir de ahora en una máquina nueva que he instalado

pip install numpy == 1.12.0 y luego pip install pandas == 0.21.0,

después de la instalación, obteniendo el mismo error

pip install numpy == 1.12.0 y luego pip install pandas == 0.21.0, después de la instalación, obteniendo el mismo error

luego muestre el registro completo de eso (y no un registro que en realidad no esté instalando nada, debe hacer esto desde un entorno nuevo donde numpy y pandas aún no están instalados)

@jorisvandenbossche aquí en la instalación de una máquina nueva

sudo pip instalar pandas
Recolectando pandas
Usando pandas-0.21.0-cp27-cp27mu-manylinux1_x86_64.whl en caché
Requisito ya satisfecho: pytz> = 2011k en /usr/local/lib/python2.7/dist-packages (de pandas)
Requisito ya satisfecho: numpy> = 1.9.0 en /usr/lib/python2.7/dist-packages (de pandas)
Requisito ya satisfecho: python-dateutil en /usr/local/lib/python2.7/dist-packages (de pandas)
Requisito ya satisfecho: seis> = 1.5 en /usr/local/lib/python2.7/dist-packages (de python-dateutil-> pandas)
Instalación de paquetes recopilados: pandas
Pandas-0.21.0 instalado con éxito

ubuntu @ ocata : ~ $ sudo pip install numpy
Requisito ya satisfecho: numpy en /usr/lib/python2.7/dist-packages

ubuntu @ ocata : ~ $ python -c "importar pandas"
RuntimeError: módulo compilado contra API versión 0xb pero esta versión de numpy es 0xa
Rastreo (llamadas recientes más última):
Archivo "", línea 1, en
Archivo "/usr/local/lib/python2.7/dist-packages/pandas/__init__.py", línea 35, en
"las extensiones C primero". formato (módulo))
ImportError: extensión C: numpy.core.multiarray no pudo importar no construido. Si desea importar pandas desde el directorio de origen, es posible que deba ejecutar 'python setup.py build_ext --inplace --force' para compilar primero las extensiones C.

Debes instalar numpy antes que pandas (aunque en este caso no habría importado, ya que numpy no se instaló solo porque ya estaba instalado). ¿Puedes mostrar lo mismo pero con la instalación reciente de numpy y pandas (y numpy primero)?
Por cierto, ¿funciona la importación de numpy?

@jorisvandenbossche instaló numpy primero, funciona bien para importar, instaló pandas y la importación está bien, pero al hacer ./stack.sh según gnocchi, la importación de pandas es un error donde la importación de numpy está bien

Su sudo python puede ser diferente a su python . Use python -m pip install ... , y solo use sudo si es necesario.

@TomAugspurger no he combinado ambos, he instalado pandas usando pip install sin problemas en la instalación,

Aquí mi pregunta; si numpy = 1.12.0 es compatible con pandas = 0.21.0

o cual es el compatible?

He probado el último numpy y el último pandas. todavía no funciona, ¿hay algún problema de compatibilidad? o la mejor versión compatible de numpy & pandas?

@maestropandy mira tus caminos:

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

El primero es /usr/local/lib , el segundo es /usr/lib , así que algo está mal. Su excepción proviene de la pitón en usr/local/lib .

@TomAugspurger ¿Se

También avíseme si hay algún problema de compatibilidad con numpy y pandas, porque he instalado numpy> = 1.9.0 & pandas> = 0.18.0, lo que significa las últimas versiones de numpy y pandas, pero parece ser compatible.

También avíseme si hay algún problema de compatibilidad con numpy y pandas,

No hay incompatibilidad entre las versiones que mencionas en general. El problema es cómo instalar ambos.

Hay un problema con la nueva versión de pandas ... así que hasta que se solucione el problema, use pip install pandas==0.20.2

@ abhishekg2389 ¿ puede proporcionar más información? Si hay algún problema con nuestros archivos de compilación, nos gustaría saberlo.

Veo un problema similar (¿el mismo?) En 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

¿Qué versión de numpy está instalada? ¿Y puede mostrar el resultado de instalar pandas 0.21.0? (el que muestra no se instala realmente, ya que ya está instalado en ese punto)

$ 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

Parece que no tengo el resultado de instalar pandas 0.21.0. Parece que ya estaba instalado en mi sistema (??). No veo un paquete RPM, por lo que no se instaló a través de los paquetes del sistema yum / dnf.

Estaba intentando instalar el paquete Prophet de Facebook (depende de Pandas y Numpy), y noté que pandas 0.18.1 ya estaba instalado. Es interesante que sea 0.18.1 y no 0.21.0.

$ 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

Sin saber cómo se instalaron los pandas es difícil ayudar. ¿Le gustaría actualizar pandas nuevamente a 0.21.0 para ver si funciona y registrar la salida?

Es interesante que sea 0.18.1 y no 0.21.0.

Solo dice que es> = 0.18.1, por lo que puede ser 0.21.0

Ahh cierto. Me perdí el '> =' .. solo que cumplía con el requisito, no con la versión específica.

Intenté actualizar a 0.21.0 nuevamente, lo que recreó el error en la importación (aunque la instalación funciona bien):

$ 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

Guión de prueba:

import pandas as pd
import numpy as np

print "Hello, world."

Emite el error de nuevo:

$ 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.

La degradación a 0.20.2 funcionó bien y el script de prueba se ejecuta correctamente después de hacerlo.

¿Algo más que pueda hacer para ayudar a reducir esto?

Bien, de hecho puedo reproducir esto. ¡Gracias por el informe!
Reabriendo este problema, pero como uno nuevo (ya que el problema original aquí era algo más, construido desde la fuente)

@jlbooker abrió un problema para rastrear esto aquí: https://github.com/pandas-dev/pandas/issues/18530
Ojalá podamos arreglar esto rápidamente

para mí, este problema se resolvió desinstalando y reinstalando pandas por sí mismo

¿Fue útil esta página
0 / 5 - 0 calificaciones