Pandas: импорт панд прерывается после успешной установки панд с помощью pip

Созданный на 16 июн. 2017  ·  46Комментарии  ·  Источник: pandas-dev/pandas

Пример кода, копируемый пример, если возможно

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

Описание проблемы

Установка Pandas с pip прошла успешно, но import pandas ломается.

Если я введу две отдельные команды pip install , одну для numpy и одну для pandas , это сработает:

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

Самый полезный комментарий

@jlbooker открыл проблему, чтобы отследить это здесь: https://github.com/pandas-dev/pandas/issues/18530
Надеюсь, мы сможем быстро это исправить

Все 46 Комментарий

Выглядит очень похоже на https://github.com/pandas-dev/pandas/issues/11383#issuecomment -294242777

Можете ли вы попробовать в подробном режиме узнать, какую версию numpy он захватывает, когда вы выполняете их одновременно?

Похоже, он набирает 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]

Может быть, тогда попробуйте сообщить о системе отслеживания проблем с пипсом. Возможно, что-то не так с нашим setup.py, но более вероятен баг-пип или setuptools.

@rvernica есть конкретная причина, по которой вы

Ах, я не видел, что версия pip была такой старой. Тогда это уже может быть исправлено.

@jorisvandenbossche Я просто делаю pip install , pip выбирает сборку из исходников, вероятно, из-за отсутствия колеса.

Сначала я попробовал обновить pip :

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

Но результат тот же: pip преуспевает, а import pandas терпит неудачу.

Обязательно должно быть колесо для pandas-0.20.2, поэтому не знаю, почему он его не загружает ..

Однако что это за система? Возможно, это несовместимо с требованиями manylinux .

Но это действительно та же проблема, что и в https://github.com/pandas-dev/pandas/issues/11383. Поэтому при установке из источника установка с помощью pip прерывается, если вы пытаетесь установить numpy и pandas за один раз (и если вы не устанавливаете последнюю версию numpy). Причина в том, что pip, похоже, строит панды в отдельном env, для которого он использует последний numpy, но в фактическом env установлена ​​более старая версия numpy и, следовательно, ошибки. Решение состоит в том, чтобы сделать это в два шага (тогда numpy уже установлен, и при создании панд он будет использовать его, а не извлекать другой).
Таким образом, либо пип просто сломан для этого варианта использования, либо мы делаем что-то не так в нашем setup.py (но в этом нет эксперта)

Имеет смысл. Система - Alpine Linux 3.4.

@rvernica , вы сообщили об этом в системе отслеживания проблем с пипсами? Я предполагал, что смогу воспроизвести это с помощью опции --no-binary , но это привело к правильной версии numpy.

Нет, у меня не было возможности сообщить об этом.

Я предполагал, что смогу воспроизвести это с параметром --no-binary, но это привело к правильной версии numpy.

@TomAugspurger вы указали старую версию numpy? (поскольку это необходимо для его запуска, например, pip install numpy==1.11 pandas==0.20 )

Да, я сделал pip install numpy==1.11.3 pandas==0.20.2 --no-binary=':all:' --verbose в чистой среде.

Хорошо, я не собираюсь сообщать об этом в восходящем направлении, поскольку https://github.com/pypa/pip/issues/3691 (реализовано в https://github.com/pypa/pip/pull/4144) является правильным решением. Давайте попробуем.

Возможно, информация о версии по-прежнему будет игнорироваться на этапе сборки, и в этом случае мы должны сообщить об этом в pip. Я сделаю пиар, добавив pyproject.toml

Я не уверен, что PEP518 что-то изменит в этом, потому что проблема все еще остается в том, что на данный момент вы создаете колесо панд (со спецификацией numpy> 0,17 из pyproject.toml, который загрузит последнюю версию 1.13), это не похоже, знает точную версию numpy, которая установлена ​​одновременно (и, таким образом, может быть старше, чем та, которая использовалась на этапе сборки колеса)

Должны ли мы на самом деле закрепить версию numpy к самой старой поддерживаемой в системе сборки? (что мы на практике делаем при создании колес для распространения?) Поскольку это делается в изолированной среде, это не должно влиять на вашу реальную среду

По-прежнему есть проблемы, есть ли решение?

Вы читали комментарии выше? Попробуйте установить numpy и pandas в два отдельных шага. В противном случае вам нужно будет рассказать гораздо больше о конкретной проблеме, которая у вас есть.

Привет,
Я также установил вручную (примечание: уже только та же версия), используя "pip install numpy == 1.12.0 pandas == 0.21.0"

Хотя после, при выполнении python -c "import pandas" появляется ошибка как

"Сначала расширения C.". format (module))
ImportError: расширение C: numpy.core.multiarray не удалось импортировать не построенный. Если вы хотите импортировать панды из исходного каталога, вам может потребоваться запустить python setup.py build_ext --inplace --force, чтобы сначала создать расширения C.

Как я сказал выше и, пожалуйста, прочтите комментарии выше, если это та же проблема, вам необходимо установить их отдельно, поэтому pip install numpy=1.12.0 а затем pip install pandas=0.21.0

@jorisvandenbossche Я установил отдельно, все та же ошибка. Я сделал наоборот. Я клонировал панды в отдельный каталог и установил панды, где я могу импортировать панды, но когда я делаю то же самое из внешнего каталога, его нет, он всегда ищет путь к исходному каталогу для запуска

sudo pip install numpy == 1.12.0
Требование уже выполнено: numpy == 1.12.0 в /usr/local/lib/python2.7/dist-packages
ubuntu @ocata : ~ / devstack $ sudo pip install pandas == 0.21.0
Требование уже выполнено: pandas == 0.21.0 в /usr/local/lib/python2.7/dist-packages
Требование уже выполнено: pytz> = 2011k в /usr/local/lib/python2.7/dist-packages (из pandas == 0.21.0)
Требование уже выполнено: numpy> = 1.9.0 в /usr/local/lib/python2.7/dist-packages (из pandas == 0.21.0)
Требование уже выполнено: python-dateutil в /usr/local/lib/python2.7/dist-packages (из pandas == 0.21.0)
Требование уже выполнено: шесть> = 1.5 в /usr/local/lib/python2.7/dist-packages (из python-dateutil-> pandas == 0.21.0)
ubuntu @ ocata : ~ / devstack $ python -c "импортировать панды"
RuntimeError: модуль скомпилирован с версией API 0xb, но эта версия numpy - 0xa
Отслеживание (последний вызов последний):
Файл "", строка 1, в
Файл "/usr/local/lib/python2.7/dist-packages/pandas/__init__.py", строка 35, в
"Сначала расширения C.". format (module))
ImportError: расширение C: numpy.core.multiarray не удалось импортировать не построенный. Если вы хотите импортировать панды из исходного каталога, вам может потребоваться запустить python setup.py build_ext --inplace --force, чтобы сначала создать расширения C.

Вам нужно дать гораздо более подробную информацию. Например, полный вывод на консоль различных шагов, которые вы сделали, в идеале с некоторым подробным вариантом, некоторая информация о среде (какая ОС, версия python, ...), почему вы устанавливаете из исходного кода, а не с колес, ...

Python 2.7.12
ОС: ubuntu 16.04 xenial

Мне нужно установить gnocchi, согласно http://gnocchi.xyz/install.html#installation -using-devstack, после добавления плагина запустил ./stack.sh, где установка gnocchi https://github.com/gnocchixyz/ gnocchi имеет зависимости pandas, когда он пытается установить / импортировать pandas получает ошибку

Здесь зависимости файлов gnocchi для панд https://github.com/gnocchixyz/gnocchi/blob/ffbb446f3f12d637a6ff45b3eb522191638e8be0/tools/duration_perf_analyse.py#L37

С другой стороны, просто предположите, что мне нужно установить панды, мне нужно клонировать в отдельном каталоге и использовать их модули, если я установил в один каталог и попытаюсь импортировать из внешнего каталога, его не идентифицируют, где я могу импортировать модули, которые находятся в / python / dist-packages / в любом месте, не относящемся к исходному каталогу

sudo pip установить панды
Требование уже выполнено: панды в /usr/local/lib/python2.7/dist-packages
Требование уже выполнено: pytz> = 2011k в /usr/local/lib/python2.7/dist-packages (из pandas)
Требование уже выполнено: numpy> = 1.9.0 в /usr/local/lib/python2.7/dist-packages (из pandas)
Требование уже выполнено: python-dateutil в /usr/local/lib/python2.7/dist-packages (из pandas)
Требование уже выполнено: шесть> = 1.5 в /usr/local/lib/python2.7/dist-packages (из python-dateutil-> pandas)
ubuntu @ ocata : /usr/local/lib/python2.7/dist-packages$ python -c «импортировать панды»
RuntimeError: модуль скомпилирован с версией API 0xb, но эта версия numpy - 0xa
Отслеживание (последний вызов последний):
Файл "", строка 1, в
Файл "pandas / __ init__.py", строка 35, в
"Сначала расширения C.". format (module))
ImportError: расширение C: numpy.core.multiarray не удалось импортировать не построенный. Если вы хотите импортировать панды из исходного каталога, вам может потребоваться запустить python setup.py build_ext --inplace --force, чтобы сначала создать расширения C.

@jorisvandenbossche, дайте мне знать требуемые подробности, если таковые имеются

Последний вывод журнала говорит: «Требование уже выполнено: pandas», поэтому вы фактически не устанавливаете его.
Кроме того, убедитесь, что pip ссылается на один и тот же питон (например, do python -m pip ), и почему вы импортируете панды из dist-packages?

@jorisvandenbossche s «Требование уже выполнено: pandas» - поскольку я установил отдельно, как вы сказали, когда я попытаюсь сделать еще раз, это определенно будет так.

почему вы импортируете панды из dist-пакетов? - >> Я пробовал отовсюду, не работает.

Дайте мне знать, как установить pandas в ubuntu 16.04, где python - 2.7.

на данный момент на свежей машине я установил

pip install numpy == 1.12.0, а затем pip install pandas == 0.21.0,

после установки появляется такая же ошибка

pip install numpy == 1.12.0, а затем pip install pandas == 0.21.0, после установки появляется такая же ошибка

затем покажите полный журнал этого (а не журнал, который на самом деле ничего не устанавливает, вам нужно сделать это из новой среды, где numpy и pandas еще не установлены)

@jorisvandenbossche здесь, в новой установке машины

sudo pip установить панды
Сбор панд
Использование кешированных pandas-0.21.0-cp27-cp27mu-manylinux1_x86_64.whl
Требование уже выполнено: pytz> = 2011k в /usr/local/lib/python2.7/dist-packages (из pandas)
Требование уже выполнено: numpy> = 1.9.0 в /usr/lib/python2.7/dist-packages (из pandas)
Требование уже выполнено: python-dateutil в /usr/local/lib/python2.7/dist-packages (из pandas)
Требование уже выполнено: шесть> = 1.5 в /usr/local/lib/python2.7/dist-packages (из python-dateutil-> pandas)
Установка собранных пакетов: панды
Успешно установлен pandas-0.21.0

ubuntu @ ocata : ~ $ sudo pip установить numpy
Требование уже выполнено: numpy в /usr/lib/python2.7/dist-packages

ubuntu @ ocata : ~ $ python -c "импортировать панды"
RuntimeError: модуль скомпилирован с версией API 0xb, но эта версия numpy - 0xa
Отслеживание (последний вызов последний):
Файл "", строка 1, в
Файл "/usr/local/lib/python2.7/dist-packages/pandas/__init__.py", строка 35, в
"Сначала расширения C.". format (module))
ImportError: расширение C: numpy.core.multiarray не удалось импортировать не построенный. Если вы хотите импортировать панды из исходного каталога, вам может потребоваться запустить python setup.py build_ext --inplace --force, чтобы сначала создать расширения C.

Вы должны установить numpy до pandas (хотя в этом случае это не имело бы значения, поскольку numpy не установил себя, поскольку он уже был установлен). Можете ли вы показать то же самое, но со свежей установкой как numpy, так и pandas (и сначала numpy)?
Кстати, импорт numpy работает?

@jorisvandenbossche сначала установил numpy, его работа нормально импортируется, установлены панды и импорт в порядке, но при выполнении ./stack.sh в соответствии с gnocchi импорт панд является ошибкой, когда импорт numpy в порядке

Ваш sudo python может отличаться от вашего python . Используйте python -m pip install ... и только sudo если это необходимо.

@TomAugspurger я не объединил оба, я установил pandas с помощью pip install без проблем при установке,

Вот мой вопрос; совместим ли numpy = 1.12.0 с pandas = 0.21.0

или какой совместимый?

Я пробовал последнюю версию numpy и последнюю версию pandas. все еще не работает, есть ли проблемы с совместимостью? или лучшая совместимая версия numpy & pandas?

@maestropandy посмотри на свои пути:

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

Первый - /usr/local/lib , второй - /usr/lib , так что там что-то не так. Ваше исключение исходит от питона в usr/local/lib .

@TomAugspurger Устанавливается ли "sudo python -m pip install numpy" в / usr / local / lib /? Буду опробовать.

Также дайте мне знать, есть ли проблема совместимости с numpy и pandas, потому что я установил numpy> = 1.9.0 & pandas> = 0.18.0, что означает последние версии numpy и pandas, но кажется совместимым?

Также дайте мне знать, есть ли проблема совместимости с numpy и pandas,

В целом между упомянутыми вами версиями несовместимости нет. Проблема в том, как установить оба.

Возникла проблема с новой версией панд ... так что пока проблема не будет исправлена, используйте pip install pandas==0.20.2

@ abhishekg2389, можете ли вы предоставить дополнительную информацию? Если есть проблема с нашими файлами сборки, мы хотели бы знать.

Я вижу аналогичную (такую ​​же?) Проблему в 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

Какая версия numpy установлена? А можно результат установки панды 0.21.0 показать? (тот, который вы показываете, на самом деле не устанавливается, поскольку он уже установлен на этом этапе)

$ 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

Кажется, у меня нет вывода от установки pandas 0.21.0. Кажется, он уже был установлен в моей системе (??). Я не вижу пакета RPM, поэтому он не был установлен через системные пакеты yum / dnf.

Я пытался установить пакет Facebook Prophet (зависит от Pandas и Numpy), и он заметил, что pandas 0.18.1 уже установлен. Интересно, что это 0.18.1, а не 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

Не зная, как были установлены панды, трудно помочь. Хотели бы вы снова обновить pandas до 0.21.0, чтобы увидеть, работает ли это, и записать вывод?

Интересно, что это 0.18.1, а не 0.21.0.

Он только говорит, что это> = 0,18,1, поэтому может быть 0,21,0

Ааааааааааааааааааааааааа правильно. Я пропустил '> =' .. просто он удовлетворял требованиям, а не конкретной версии.

Снова попробовал выполнить обновление до 0.21.0, в результате чего была воссоздана ошибка при импорте (хотя установка работает нормально):

$ 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

Тестовый сценарий:

import pandas as pd
import numpy as np

print "Hello, world."

Снова выводит ошибку:

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

Понижение до 0.20.2 сработало нормально, и после этого тестовый скрипт запускается успешно.

Что еще я могу сделать, чтобы сузить круг вопросов?

Хорошо, я могу воспроизвести это. Спасибо за отчет!
Повторное открытие этой проблемы, но как новой (поскольку исходная проблема здесь была чем-то другим, созданным из исходного кода)

@jlbooker открыл проблему, чтобы отследить это здесь: https://github.com/pandas-dev/pandas/issues/18530
Надеюсь, мы сможем быстро это исправить

для меня эта проблема была решена путем удаления и переустановки панд самостоятельно

Была ли эта страница полезной?
0 / 5 - 0 рейтинги