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