Pandas: l'importation des pauses de pandas après l'installation réussie de pandas avec pip

Créé le 16 juin 2017  ·  46Commentaires  ·  Source: pandas-dev/pandas

Exemple de code, un exemple à copier-coller si possible

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

Description du problème

L'installation de Pandas avec pip réussit, mais import pandas échoue.

Si je lance deux commandes pip install distinctes, une pour numpy et une pour pandas , cela fonctionne :

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

Commentaire le plus utile

@jlbooker a ouvert un problème pour suivre cela ici : https://github.com/pandas-dev/pandas/issues/18530
Espérons que nous pourrons rapidement résoudre ce problème

Tous les 46 commentaires

Ressemble assez à https://github.com/pandas-dev/pandas/issues/11383#issuecomment -294242777

Pouvez-vous essayer avec le mode verbeux pour voir quelle version de numpy it pip saisit lorsque vous les faites en même temps ?

On dirait qu'il ramasse 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]

Essayez alors peut-être de faire un rapport sur le suivi des problèmes de pip. Il est possible qu'il y ait un problème avec notre setup.py mais un bug pip ou setuptools semble plus probable.

@rvernica y a-t-il une raison spécifique pour laquelle vous construisez des pandas à partir de la source, au lieu de télécharger et d'installer la roue ? Car avec le volant, ça devrait s'installer sans problème je pense.

Ah je n'avais pas vu que la version pip était si ancienne. Il est peut-être déjà corrigé alors.

@jorisvandenbossche Je fais juste pip install , pip choisit de le construire à partir de la source probablement parce qu'il n'y a pas de roue.

J'ai d'abord essayé de mettre pip niveau

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

Mais le résultat est le même, pip réussit mais import pandas échoue.

Il devrait certainement y avoir une roue pour pandas-0.20.2, donc je ne sais pas pourquoi elle ne la télécharge pas ..

Cependant, de quel système s'agit-il ? Il n'est peut-être pas compatible avec les exigences de manylinux .

Mais c'est bien le même problème que dans https://github.com/pandas-dev/pandas/issues/11383. Ainsi, lors de l'installation à partir des sources, l'installation avec pip s'interrompt si vous essayez d'installer numpy et pandas en une seule fois (et si vous n'installez pas la dernière version de numpy). La raison en est que pip semble construire des pandas dans un environnement distinct pour lequel il utilise le dernier numpy, mais dans l'environnement réel, une ancienne version de numpy est installée, d'où les erreurs. La solution consiste simplement à le faire en deux étapes (alors numpy est déjà installé, et lors de la construction de pandas, il l'utilisera et n'en récupérera pas un autre).
Donc, soit le pip est juste cassé pour ce cas d'utilisation, soit nous faisons quelque chose de mal dans notre setup.py (mais aucun expert en la matière)

Logique. Le système est Alpine Linux 3.4.

@rvernica avez-vous signalé cela sur le suivi des problèmes de pip ? J'ai supposé que je serais capable de reproduire cela avec l'option --no-binary , mais cela a réduit la version numpy correcte.

Non, je n'ai pas eu l'occasion de le signaler.

J'ai supposé que je serais capable de reproduire cela avec l'option --no-binary, mais cela a réduit la version numpy correcte.

@TomAugspurger avez-vous spécifié une ancienne version de numpy ? (comme cela est nécessaire pour le déclencher, par exemple pip install numpy==1.11 pandas==0.20 )

Oui, j'ai fait pip install numpy==1.11.3 pandas==0.20.2 --no-binary=':all:' --verbose dans un environnement propre.

OK, je ne vais pas signaler cela en amont car https://github.com/pypa/pip/issues/3691 (implémenté dans https://github.com/pypa/pip/pull/4144) est la bonne solution. Essayons ça.

Il est possible que les informations de version soient toujours ignorées pour l'étape de construction, auquel cas nous devons les signaler à pip. Je vais faire un PR en ajoutant le pyproject.toml

Je ne suis pas sûr que PEP518 va changer quoi que ce soit à ce sujet, car le problème demeure qu'au moment où vous construisez la roue des pandas (avec la spécification de numpy>0.17 à partir du pyproject.toml, qui téléchargera la dernière 1.13) cela ne fonctionne pas semblent connaître la version exacte de numpy qui est installée en même temps (et peut donc être plus ancienne que celle utilisée dans l'étape de construction de la roue)

Devrions-nous réellement épingler la version numpy à la plus ancienne prise en charge dans le système de construction ? (ce que nous faisons en pratique lors de la construction de roues à distribuer ?) Étant donné que cela se fait dans un environnement isolé, cela ne devrait pas influencer votre environnement réel

Toujours des problèmes, une solution ?

Avez-vous lu les commentaires ci-dessus? Essayez d'installer numpy et pandas en deux étapes distinctes. Et sinon, vous devrez donner beaucoup plus de détails sur le problème spécifique que vous rencontrez.

Salut,
J'ai également installé manuellement (note: déjà la même version uniquement), en utilisant "pip install numpy==1.12.0 pandas==0.21.0"

Bien qu'après, tout en faisant python -c " import pandas " obtenant l'erreur comme

"les extensions C d'abord.".format(module))
ImportError : extension C : numpy.core.multiarray n'a pas pu être importé non construit. Si vous souhaitez importer des pandas à partir du répertoire source, vous devrez peut-être exécuter 'python setup.py build_ext --inplace --force' pour créer d'abord les extensions C.

Comme je l'ai dit ci-dessus et veuillez lire les commentaires ci-dessus, s'il s'agit du même problème, vous devez les installer séparément, donc pip install numpy=1.12.0 puis pip install pandas=0.21.0

@jorisvandenbossche que j'ai installé séparément, toujours la même erreur. J'ai fait l'inverse. J'ai cloné des pandas dans un répertoire séparé et installé des pandas, où je peux importer des pandas, mais quand je fais la même chose à partir d'un répertoire extérieur, ce n'est pas le cas, il cherche toujours le chemin du répertoire source à exécuter

sudo pip installer numpy = = 1.12.0
Exigence déjà satisfaite : numpy==1.12.0 dans /usr/local/lib/python2.7/dist-packages
ubuntu @ocata :~/devstack$ sudo pip install pandas==0.21.0
Exigence déjà satisfaite : pandas==0.21.0 dans /usr/local/lib/python2.7/dist-packages
Exigence déjà satisfaite : pytz>=2011k dans /usr/local/lib/python2.7/dist-packages (de pandas==0.21.0)
Exigence déjà satisfaite : numpy>=1.9.0 dans /usr/local/lib/python2.7/dist-packages (de pandas==0.21.0)
Exigence déjà satisfaite : python-dateutil dans /usr/local/lib/python2.7/dist-packages (de pandas==0.21.0)
Exigence déjà satisfaite : six>=1.5 dans /usr/local/lib/python2.7/dist-packages (de python-dateutil->pandas==0.21.0)
ubuntu@ocata :~/devstack$ python -c "importer des pandas"
RuntimeError : module compilé avec l'API version 0xb mais cette version de numpy est 0xa
Traceback (appel le plus récent en dernier) :
Déposer "", ligne 1, dans
Fichier "/usr/local/lib/python2.7/dist-packages/pandas/__init__.py", ligne 35, dans
"les extensions C d'abord.".format(module))
ImportError : extension C : numpy.core.multiarray n'a pas pu être importé non construit. Si vous souhaitez importer des pandas à partir du répertoire source, vous devrez peut-être exécuter 'python setup.py build_ext --inplace --force' pour créer d'abord les extensions C.

Vous devez donner des informations beaucoup plus détaillées. Par exemple, la sortie console complète des différentes étapes que vous avez effectuées, idéalement avec une option détaillée, des informations sur l'environnement (quel système d'exploitation, version python, ...), pourquoi vous installez à partir des sources et non des roues, ...

Python 2.7.12
Système d'exploitation : ubuntu 16.04 xenial

J'ai besoin d'installer gnocchi, selon http://gnocchi.xyz/install.html#installation -using-devstack, après avoir ajouté le plugin, j'ai exécuté ./stack.sh, où gnocchi installation https://github.com/gnocchixyz/ gnocchi a des dépendances de pandas, quand il essaie d'installer/importer des pandas obtenant une erreur

Voici les dépendances du fichier gnocchi des pandas https://github.com/gnocchixyz/gnocchi/blob/ffbb446f3f12d637a6ff45b3eb522191638e8be0/tools/duration_perf_analyse.py#L37

D'une autre manière, supposons simplement que j'ai besoin d'installer des pandas, je dois cloner dans un répertoire séparé et utiliser leurs modules, si j'ai installé dans un répertoire et essayer d'importer depuis un répertoire extérieur, il n'est pas identifié, où je peux importer des modules qui se trouvent tous sous /python/dist-packages/ n'importe où sans rapport avec le répertoire source

sudo pip installer des pandas
Exigence déjà satisfaite : pandas dans /usr/local/lib/python2.7/dist-packages
Exigence déjà satisfaite : pytz>=2011k dans /usr/local/lib/python2.7/dist-packages (de pandas)
Exigence déjà satisfaite : numpy>=1.9.0 dans /usr/local/lib/python2.7/dist-packages (depuis pandas)
Exigence déjà satisfaite : python-dateutil dans /usr/local/lib/python2.7/dist-packages (depuis pandas)
Exigence déjà satisfaite : six>=1.5 dans /usr/local/lib/python2.7/dist-packages (de python-dateutil->pandas)
ubuntu@ocata :/usr/local/lib/python2.7/dist-packages$ python -c "importer des pandas"
RuntimeError : module compilé avec l'API version 0xb mais cette version de numpy est 0xa
Traceback (appel le plus récent en dernier) :
Déposer "", ligne 1, dans
Fichier "pandas/__init__.py", ligne 35, dans
"les extensions C d'abord.".format(module))
ImportError : extension C : numpy.core.multiarray n'a pas pu être importé non construit. Si vous souhaitez importer des pandas à partir du répertoire source, vous devrez peut-être exécuter 'python setup.py build_ext --inplace --force' pour créer d'abord les extensions C.

@jorisvandenbossche laissez-moi savoir les détails requis le cas échéant

La dernière sortie de journal indique « Exigence déjà satisfaite : pandas », donc vous ne l'installez pas réellement.
De plus, assurez-vous que pip fait référence au même python (par exemple, faites python -m pip ), et pourquoi importez-vous des pandas à partir de dist-packages ?

@jorisvandenbossche s "Exigence déjà satisfaite: pandas" - Parce que j'ai installé séparément comme vous l'avez dit, lorsque j'essaierai de le refaire, cela apparaîtra certainement comme ça.

pourquoi importez-vous des pandas de dist-packages ? -->> J'ai essayé de partout, il ne fonctionne pas.

Faites-moi savoir comment installer des pandas dans Ubuntu 16.04 où python est 2.7.

à partir de maintenant dans une nouvelle machine que j'ai installée

pip install numpy==1.12.0 puis pip install pandas==0.21.0,

après l'installation, obtenir la même erreur

pip install numpy==1.12.0 puis pip install pandas==0.21.0, après l'installation, obtenant la même erreur

puis affichez le journal complet de cela (et non un journal qui n'installe rien, vous devez le faire à partir d'un nouvel environnement où numpy et pandas ne sont pas encore installés)

@jorisvandenbossche ici dans une nouvelle installation de machine

sudo pip installer des pandas
Collectionner des pandas
Utilisation de pandas en cache-0.21.0-cp27-cp27mu-manylinux1_x86_64.whl
Exigence déjà satisfaite : pytz>=2011k dans /usr/local/lib/python2.7/dist-packages (de pandas)
Exigence déjà satisfaite : numpy>=1.9.0 dans /usr/lib/python2.7/dist-packages (de pandas)
Exigence déjà satisfaite : python-dateutil dans /usr/local/lib/python2.7/dist-packages (depuis pandas)
Exigence déjà satisfaite : six>=1.5 dans /usr/local/lib/python2.7/dist-packages (de python-dateutil->pandas)
Installation des packages collectés : pandas
Pandas-0.21.0 installé avec succès

ubuntu@ocata :~$ sudo pip install numpy
Exigence déjà satisfaite : numpy dans /usr/lib/python2.7/dist-packages

ubuntu@ocata :~$ python -c "importer des pandas"
RuntimeError : module compilé avec l'API version 0xb mais cette version de numpy est 0xa
Traceback (appel le plus récent en dernier) :
Déposer "", ligne 1, dans
Fichier "/usr/local/lib/python2.7/dist-packages/pandas/__init__.py", ligne 35, dans
"les extensions C d'abord.".format(module))
ImportError : extension C : numpy.core.multiarray n'a pas pu être importé non construit. Si vous souhaitez importer des pandas à partir du répertoire source, vous devrez peut-être exécuter 'python setup.py build_ext --inplace --force' pour créer d'abord les extensions C.

Vous devriez installer numpy avant les pandas (bien que dans ce cas, cela n'aurait pas eu d'importance, car numpy ne s'est pas installé car il était déjà installé). Pouvez-vous montrer la même chose, mais avec une nouvelle installation de numpy et de pandas (et numpy d'abord) ?
BTW, l'importation de numpy fonctionne-t-elle ?

@jorisvandenbossche a d'abord installé numpy, son importation fonctionne bien, les pandas installés et l'importation sont bien, mais tout en faisant ./stack.sh selon les gnocchi, l'importation de pandas est une erreur où l'importation numpy est bien

Votre sudo python peut être différent de votre python . Utilisez python -m pip install ... , et n'utilisez sudo si nécessaire.

@TomAugspurger je n'ai pas combiné les deux, j'ai installé des pandas en utilisant pip install aucun problème d'installation,

Voici ma question; si numpy=1.12.0 est compatible avec pandas=0.21.0

ou quel est le compatible ?

J'ai essayé le dernier numpy et le dernier pandas. ne fonctionne toujours pas, y a-t-il un problème de compatibilité ? ou la meilleure version compatible numpy & pandas ?

@maestropandy regarde tes chemins :

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

Le premier est /usr/local/lib , le second est /usr/lib , donc quelque chose ne va pas. Votre exception vient du python dans usr/local/lib .

@TomAugspurger Est-

Faites-moi également savoir s'il y a un problème de compatibilité avec numpy & pandas, car j'ai installé numpy>=1.9.0 & pandas>=0.18.0, ce qui signifie à la fois les dernières versions de numpy et de pandas, mais semble compatible ?

Faites-moi également savoir s'il y a un problème de compatibilité avec numpy & pandas,

Il n'y a pas d'incompatibilité entre les versions que vous mentionnez en général. Le problème est de savoir comment vous installez les deux.

Il y a un problème avec la nouvelle version de pandas.. donc jusqu'à ce que le problème soit résolu, utilisez pip install pandas==0.20.2

@abhishekg2389 pouvez-vous fournir plus d'informations ? S'il y a un problème avec nos fichiers de construction, nous aimerions le savoir.

Je vois un problème similaire (même?) Sous 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

Quelle version de numpy est installée ? Et pouvez-vous afficher le résultat de l'installation de pandas 0.21.0 ? (celui que vous montrez ne s'installe pas réellement, car il est déjà installé à ce stade)

$ 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

Je ne semble pas avoir le résultat de l'installation de pandas 0.21.0. Il semble qu'il ait déjà été installé sur mon système (??). Je ne vois pas de package RPM, il n'a donc pas été installé via les packages système yum/dnf.

J'essayais d'installer le package Prophet de Facebook (qui a une dépendance sur Pandas et Numpy), et il a noté que pandas 0.18.1 était déjà installé. Intéressant que ce soit 0,18.1 et non 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

Sans savoir comment les pandas ont été installés, il est difficile d'aider. Voudriez-vous à nouveau mettre à niveau les pandas vers la 0.21.0 pour voir si cela fonctionne et consigner la sortie ?

Intéressant que ce soit 0,18.1 et non 0,21.0.

Il dit seulement que c'est >=0.18.1, donc ça peut être 0.21.0

Ah d'accord. J'ai raté le '>=' .. juste qu'il satisfaisait à l'exigence, pas à la version spécifique.

J'ai à nouveau essayé de mettre à niveau vers 0.21.0, ce qui a recréé une erreur à l'importation (l'installation fonctionne bien, cependant):

$ 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

Scénario de test :

import pandas as pd
import numpy as np

print "Hello, world."

Affiche à nouveau l'erreur :

$ 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 rétrogradation à 0.20.2 a bien fonctionné, et le script de test s'exécute avec succès après cela.

Y a-t-il autre chose que je puisse faire pour aider à réduire ce problème ?

OK, je peux effectivement reproduire cela. Merci pour le rapport !
Réouverture de ce problème, mais en tant que nouveau (car le problème d'origine ici était autre chose, construit à partir de la source)

@jlbooker a ouvert un problème pour suivre cela ici : https://github.com/pandas-dev/pandas/issues/18530
Espérons que nous pourrons rapidement résoudre ce problème

pour moi, ce problème a été résolu en désinstallant et en réinstallant les pandas par lui-même

Cette page vous a été utile?
0 / 5 - 0 notes