Pandas: importar pandas quebra depois de instalar com sucesso o pandas com pip

Criado em 16 jun. 2017  ·  46Comentários  ·  Fonte: pandas-dev/pandas

Amostra de código, um exemplo que pode ser copiado e colado, se possível

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

Descrição do Problema

A instalação do Pandas com pip foi bem-sucedida, mas import pandas interrompida.

Se eu emitir dois comandos pip install separados, um para numpy e um para pandas , funcionará:

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

Comentários muito úteis

@jlbooker abriu um problema para rastrear isso aqui: https://github.com/pandas-dev/pandas/issues/18530
Espero que possamos corrigir isso rapidamente

Todos 46 comentários

É muito semelhante a https://github.com/pandas-dev/pandas/issues/11383#issuecomment -294242777

Você pode tentar o modo verbose para ver qual versão do numpy ele pega quando você faz isso ao mesmo tempo?

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

Então, tente relatar no rastreador de problemas de pip. É possível que haja algo errado com nosso setup.py, mas um bug de pip ou setuptools parece mais provável.

@rvernica há um motivo específico para você estar criando pandas a partir do código-fonte, em vez de baixar e instalar a roda? Porque com a roda, ele deve instalar sem problemas, eu acho.

Ah, eu não vi que a versão pip era tão antiga. Já pode ser corrigido então.

@jorisvandenbossche Estou apenas fazendo pip install , pip escolher construí-lo a partir do código-fonte, provavelmente porque não há roda.

Tentei atualizar pip primeiro:

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

Mas o resultado é o mesmo, pip é bem-sucedido, mas import pandas falha.

Certamente deve haver uma roda para o pandas-0.20.2, então não tenho certeza por que não está fazendo o download.

Porém, qual é o sistema? Talvez não seja compatível com os requisitos de manylinux .

Mas é realmente o mesmo problema que em https://github.com/pandas-dev/pandas/issues/11383. Portanto, ao fazer a instalação a partir do código-fonte, instale com pip quebras se você tentar instalar o numpy e o pandas de uma vez (e se você não estiver instalando a versão mais recente do numpy). A razão é que o pip parece construir os pandas em um env separado para o qual usa o numpy mais recente, mas no env real uma versão mais antiga do numpy está instalada e, portanto, os erros. A solução é fazer em dois passos (então o numpy já está instalado, e ao construir pandas ele vai usar e não buscar outro).
Portanto, ou o pip está quebrado apenas para este caso de uso ou fazemos algo errado em nosso setup.py (mas nenhum especialista nisso)

Faz sentido. O sistema é Alpine Linux 3.4.

@rvernica , você relatou isso no rastreador de problemas de pip? Presumi que seria capaz de reproduzir isso com a opção --no-binary , mas isso puxou para baixo a versão numpy correta.

Não, eu não tive a chance de relatar isso.

Presumi que seria capaz de reproduzir isso com a opção --no-binary, mas isso puxou para baixo a versão numpy correta.

@TomAugspurger você especificou uma versão mais antiga do numpy? (já que isso é necessário para acioná-lo, por exemplo, pip install numpy==1.11 pandas==0.20 )

Sim, eu fiz pip install numpy==1.11.3 pandas==0.20.2 --no-binary=':all:' --verbose em um ambiente limpo.

OK, não vou relatar este upstream porque https://github.com/pypa/pip/issues/3691 (implementado em https://github.com/pypa/pip/pull/4144) é a solução correta. Vamos dar uma chance.

É possível que as informações da versão ainda sejam ignoradas para a etapa de compilação, caso em que devemos reportar ao pip. Farei um PR adicionando pyproject.toml

Não tenho certeza se o PEP518 vai mudar alguma coisa sobre isso, porque o problema ainda é que no momento em que você constrói a roda do pandas (com a especificação numpy> 0,17 do pyproject.toml, que irá baixar o último 1.13) ele não parecem saber sobre a versão numpy exata que é instalada ao mesmo tempo (e pode, portanto, ser mais antiga do que a usada na etapa de construção da roda)

Devemos realmente fixar a versão numpy à mais antiga suportada pelo sistema de construção requer? (o que fazemos na prática ao construir rodas para distribuir?) Como isso é feito em um ambiente isolado, não deve influenciar seu ambiente real

Ainda com problemas, alguma solução?

Você leu os comentários acima? Tente instalar numpy e pandas em duas etapas separadas. Caso contrário, você precisará fornecer muito mais detalhes sobre o problema específico que possui.

Oi,
Também instalei manualmente (nota: já apenas a mesma versão), usando "pip install numpy == 1.12.0 pandas == 0.21.0"

Embora depois, ao fazer python -c "importar pandas", recebo um erro como

"as extensões C primeiro.". formato (módulo))
ImportError: extensão C: numpy.core.multiarray falhou ao importar não compilado. Se você deseja importar o pandas do diretório de origem, pode ser necessário executar 'python setup.py build_ext --inplace --force' para construir as extensões C primeiro.

Como eu disse acima e por favor leia os comentários acima, se for o mesmo problema você precisa instalá-los separadamente, então pip install numpy=1.12.0 e então pip install pandas=0.21.0

@jorisvandenbossche eu instalei separadamente, ainda é o mesmo erro. Eu fiz o contrário. Clonei os pandas em um diretório separado e instalei o pandas, onde posso importar pandas, mas quando faço o mesmo de um diretório externo não é, ele sempre procura o caminho do diretório de origem para executar

sudo pip install numpy == 1.12.0
Requisito já atendido: numpy == 1.12.0 in /usr/local/lib/python2.7/dist-packages
ubuntu @ocata : ~ / devstack $ sudo pip install pandas == 0.21.0
Requisito já atendido: pandas == 0.21.0 in /usr/local/lib/python2.7/dist-packages
Requisito já atendido: pytz> = 2011k em /usr/local/lib/python2.7/dist-packages (de pandas == 0.21.0)
Requisito já atendido: numpy> = 1.9.0 in /usr/local/lib/python2.7/dist-packages (de pandas == 0.21.0)
Requisito já atendido: python-dateutil em /usr/local/lib/python2.7/dist-packages (de pandas == 0.21.0)
Requisito já satisfeito: seis> = 1,5 em /usr/local/lib/python2.7/dist-packages (de python-dateutil-> pandas == 0.21.0)
ubuntu @ ocata : ~ / devstack $ python -c "import pandas"
RuntimeError: módulo compilado contra a versão da API 0xb, mas esta versão do numpy é 0xa
Traceback (última chamada mais recente):
Arquivo "", linha 1, em
Arquivo "/usr/local/lib/python2.7/dist-packages/pandas/__init__.py", linha 35, em
"as extensões C primeiro.". formato (módulo))
ImportError: extensão C: numpy.core.multiarray falhou ao importar não compilado. Se você deseja importar o pandas do diretório de origem, pode ser necessário executar 'python setup.py build_ext --inplace --force' para construir as extensões C primeiro.

Você precisa fornecer informações muito mais detalhadas. Por exemplo, a saída completa do console das diferentes etapas que você executou, de preferência com alguma opção detalhada, algumas informações sobre o ambiente (qual sistema operacional, versão do python, ...), por que você está instalando a partir da fonte e não das rodas, ...

Python 2.7.12
SO: ubuntu 16.04 xenial

Preciso instalar o gnocchi, de acordo com http://gnocchi.xyz/install.html#installation -using-devstack, após adicionar o plugin, executei ./stack.sh, onde a instalação do gnocchi https://github.com/gnocchixyz/ gnocchi tem dependências do pandas, quando tenta instalar / importar o pandas obtendo um erro

Aqui, as dependências do arquivo gnocchi dos pandas https://github.com/gnocchixyz/gnocchi/blob/ffbb446f3f12d637a6ff45b3eb522191638e8be0/tools/duration_perf_analyse.py#L37

De outra forma, suponha que eu preciso instalar o pandas, tenho que clonar em um diretório separado e usar seus módulos, se eu instalar em um diretório e tentar importar de um diretório externo, não está sendo identificado, onde posso importar módulos que estão todos em / python / dist-packages / em qualquer lugar irrelevante para o diretório de origem

sudo pip instalar pandas
Requisito já satisfeito: pandas em /usr/local/lib/python2.7/dist-packages
Requisito já atendido: pytz> = 2011k em /usr/local/lib/python2.7/dist-packages (de pandas)
Requisito já atendido: numpy> = 1.9.0 em /usr/local/lib/python2.7/dist-packages (de pandas)
Requisito já atendido: python-dateutil em /usr/local/lib/python2.7/dist-packages (de pandas)
Requisito já atendido: seis> = 1,5 em /usr/local/lib/python2.7/dist-packages (de python-dateutil-> pandas)
ubuntu @ ocata : /usr/local/lib/python2.7/dist-packages$ python -c "import pandas"
RuntimeError: módulo compilado contra a versão da API 0xb, mas esta versão do numpy é 0xa
Traceback (última chamada mais recente):
Arquivo "", linha 1, em
Arquivo "pandas / __ init__.py", linha 35, em
"as extensões C primeiro.". formato (módulo))
ImportError: extensão C: numpy.core.multiarray falhou ao importar não compilado. Se você deseja importar o pandas do diretório de origem, pode ser necessário executar 'python setup.py build_ext --inplace --force' para construir as extensões C primeiro.

@jorisvandenbossche, deixe-me saber os detalhes necessários, se houver

A última saída de log diz "Requisito já satisfeito: pandas", então você não o está instalando.
Além disso, certifique-se de que pip faz referência ao mesmo python (por exemplo, faça python -m pip ), e por que você está importando pandas de dist-packages?

@jorisvandenbossche s "Requisito já satisfeito: pandas" - Porque instalei separadamente como você disse, ao tentar fazer de novo, com certeza vai mostrar assim.

por que você está importando pandas de dist-packages? - >> Tentei de todos os lugares, não está funcionando.

Deixe-me saber como instalar o pandas no ubuntu 16.04 onde python é 2.7.

a partir de agora em uma máquina nova que instalei

pip install numpy == 1.12.0 e, em seguida, pip install pandas == 0.21.0,

após a instalação, obtendo o mesmo erro

pip install numpy == 1.12.0 e, em seguida, pip install pandas == 0.21.0, após a instalação, obtendo o mesmo erro

em seguida, mostre o log completo disso (e não um log que não esteja realmente instalando nada, você precisa fazer isso de um ambiente novo onde o numpy e o pandas ainda não estejam instalados)

@jorisvandenbossche aqui na instalação da máquina nova

sudo pip instalar pandas
Coletando pandas
Usando cached pandas-0.21.0-cp27-cp27mu-manylinux1_x86_64.whl
Requisito já atendido: pytz> = 2011k em /usr/local/lib/python2.7/dist-packages (de pandas)
Requisito já atendido: numpy> = 1.9.0 in /usr/lib/python2.7/dist-packages (de pandas)
Requisito já atendido: python-dateutil em /usr/local/lib/python2.7/dist-packages (de pandas)
Requisito já atendido: seis> = 1,5 em /usr/local/lib/python2.7/dist-packages (de python-dateutil-> pandas)
Instalando pacotes coletados: pandas
O pandas-0.21.0 foi instalado com sucesso

ubuntu @ ocata : ~ $ sudo pip install numpy
Requisito já satisfeito: numpy em /usr/lib/python2.7/dist-packages

ubuntu @ ocata : ~ $ python -c "import pandas"
RuntimeError: módulo compilado contra a versão da API 0xb, mas esta versão do numpy é 0xa
Traceback (última chamada mais recente):
Arquivo "", linha 1, em
Arquivo "/usr/local/lib/python2.7/dist-packages/pandas/__init__.py", linha 35, em
"as extensões C primeiro.". formato (módulo))
ImportError: extensão C: numpy.core.multiarray falhou ao importar não compilado. Se você deseja importar o pandas do diretório de origem, pode ser necessário executar 'python setup.py build_ext --inplace --force' para construir as extensões C primeiro.

Você deve instalar o numpy antes do pandas (embora neste caso não tenha importado, já que o numpy não se instalou como já estava instalado). Você pode mostrar o mesmo, mas com a instalação recente de numpy e pandas (e numpy primeiro)?
BTW, importar numpy funciona?

@jorisvandenbossche instalou o numpy primeiro está funcionando bem para importar, instalar pandas e importar está bem, mas ao fazer ./stack.sh como por nhoque, a importação de pandas é um erro onde importar numpy está bem

Seu sudo python pode ser diferente de seu python . Use python -m pip install ... , e apenas use sudo se necessário.

@TomAugspurger não combinei os dois, instalei o pandas usando pip install sem problemas na instalação,

Aqui está minha pergunta; se numpy = 1.12.0 é compatível com pandas = 0.21.0

ou qual é o compatível?

Eu tentei o mais recente numpy e o mais recente dos pandas. ainda não está funcionando, há algum problema de compatibilidade? ou a melhor versão compatível do numpy & pandas?

@maestropandy olhe para seus caminhos:

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

O primeiro é /usr/local/lib , o segundo é /usr/lib , então algo está errado aí. Sua exceção vem do python em usr/local/lib .

@TomAugspurger O "sudo python -m pip install numpy" será instalado em / usr / local / lib /? Vou experimentar.

Também me informe se há algum problema de compatibilidade com o numpy & pandas, porque instalei o numpy> = 1.9.0 & pandas> = 0.18.0, o que significa versões mais recentes do numpy e do pandas, mas parece compatível?

Também me informe se há algum problema de compatibilidade com numpy e pandas,

Não há incompatibilidade entre as versões que você menciona em geral. O problema é como você instala os dois.

Há um problema com a nova versão do pandas .. então até que o problema seja corrigido use pip install pandas==0.20.2

@ abhishekg2389 pode fornecer mais informações? Se houver um problema com nossos arquivos de construção, gostaríamos de saber.

Estou vendo um problema semelhante (o mesmo?) No 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

Qual versão do numpy está instalada? E você pode mostrar o resultado da instalação do pandas 0.21.0? (o que você mostra não instala, pois já está instalado nesse ponto)

$ 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

Não consigo obter o resultado da instalação do pandas 0.21.0. Parece que já foi instalado no meu sistema (??). Não vejo um pacote RPM, então ele não foi instalado através dos pacotes de sistema yum / dnf.

Eu estava tentando instalar o pacote Profeta do Facebook (depende do Pandas e do Numpy) e ele notou que o pandas 0.18.1 já estava instalado. Interessante que é 0.18.1 e não 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

Sem saber como o pandas foi instalado é difícil ajudar. Você gostaria de atualizar o pandas novamente para 0.21.0 para ver se funciona e registrar a saída?

Interessante que é 0.18.1 e não 0.21.0.

Diz apenas que é> = 0,18,1, então pode ser 0,21,0

Ahh certo. Perdi o '> =' .. apenas que satisfazia o requisito, não a versão específica.

Tentei atualizar para 0.21.0 novamente, que recriou o erro na importação (embora a instalação funcione bem):

$ 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

Script de teste:

import pandas as pd
import numpy as np

print "Hello, world."

Retorna o erro:

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

O downgrade para 0.20.2 funcionou bem, e o script de teste é executado com sucesso depois de fazer isso.

Posso fazer mais alguma coisa para ajudar a restringir isso?

OK, eu posso realmente reproduzir isso. Obrigado pelo relatório!
Reabrindo esta edição, mas como uma nova (já que a edição original aqui era outra coisa, construída a partir da fonte)

@jlbooker abriu um problema para rastrear isso aqui: https://github.com/pandas-dev/pandas/issues/18530
Espero que possamos corrigir isso rapidamente

para mim, esse problema foi resolvido desinstalando e reinstalando o pandas por conta própria

Esta página foi útil?
0 / 5 - 0 avaliações