Подтвердить что ты не робот

RuntimeError: модуль скомпилирован по версии API версии a, но эта версия numpy равна 9

код:

import numpy as np
import cv

Консоль:

>>> runfile('/Users/isaiahnields/.spyder2/temp.py', wdir='/Users/isaiahnields/.spyder2')
RuntimeError: module compiled against API version a but this version of numpy is 9
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
File "/Applications/Spyder-Py2.app/Contents/Resources/lib/python2.7/spyderlib/widgets/externalshell/sitecustomize.py", line 685, in runfile
execfile(filename, namespace)
File "/Applications/Spyder-Py2.app/Contents/Resources/lib/python2.7/spyderlib/widgets/externalshell/sitecustomize.py", line 78, in execfile
builtins.execfile(filename, *where)
File "/Users/isaiahnields/.spyder2/temp.py", line 9, in <module>
import cv
File "/Applications/Spyder-Py2.app/Contents/Resources/lib/python2.7/cv.py", line 1, in <module>
from cv2.cv import *
ImportError: numpy.core.multiarray failed to import
>>> 

Информация о системе: OS X El Capitan, Macbook Air, 1,3 ГГц Intel Core i5, 8 ГБ 1600 HMz DDR3

Я уже пытался обновить numpy. Мне пришлось добавить cv.py в папку python2.7 в Spyder-Py2, есть ли что-то еще, что мне нужно добавить?

4b9b3361

Ответ 1

обновление numpy до последней версии

pip install numpy --upgrade

Ответ 2

Проверьте путь

import numpy
print numpy.__path__

Для меня это было /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy. Поэтому я переместил его во временное место.

sudo mv /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy \
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy_old

а затем в следующий раз, когда я импортировал numpy, путь был /Library/Python/ 2.7/site-packages/numpy/ init.pyc, и все было хорошо.

Ответ 3

Это сработало для меня:

sudo pip install numpy --upgrade --ignore-installed

Ответ 4

Вероятно, вы используете Mac по умолчанию (/usr/bin/python), у которого установлена ​​более старая версия numpy, установленная в системных папках. Самый простой способ заставить python работать с opencv - использовать brew для установки как python, так и opencv в /usr/local и запустить /usr/local/bin/python.

brew install python
brew tap homebrew/science
brew install opencv

Ответ 5

Я столкнулся с той же проблемой сегодня вечером. Это оказалось проблемой, когда у меня было установлено несколько пакетов. Старая версия была установлена в /usr/lib/python2.7 а правильная версия была установлена в /usr/local/lib/python2.7.

Кроме того, у меня был PYTHONPATH=/usr/lib/python2.7/dist-packages: /usr/local/lib/python2.7/dist-packages. PYTHONPATH находил более старую версию numpy перед правильной версией, поэтому, находясь внутри интерпретатора Python, он импортировал старую версию numpy.

Одна вещь, которая помогла открыть сеанс Python и выполнить следующий код:

import numpy as np 
print np.__version__ 
print np.__path__

Это должно точно сказать, какая версия Python используется и где она установлена.

Чтобы решить эту проблему, я изменил PYTHONPATH=/usr/local/lib/python2.7/dist-packages: /usr/lib/python2.7/dist-packages. И я также настроил виртуальную среду Python, используя Руководство по автостопу по Python, в частности раздел "Нижний уровень: virtualenv". Я знаю, что сначала мне нужно было настроить виртуальную среду, но я устал и ленился. О, хорошо, урок усвоен!

(Обновить)

На случай, если документы будут перенесены снова, вот соответствующие биты на...

Создание виртуальной среды Python

Установите virtualenv через pip:

$ install virtualenv

Проверьте установку:

$ virtualenv --version

При желании VIRTUALENVWRAPPER_PYTHON переменную среды VIRTUALENVWRAPPER_PYTHON чтобы изменить версию python по умолчанию, используемую в виртуальных средах, например, для использования Python 3:

$ export VIRTUALENVWRAPPER_PYTHON=$(which python3)

При желании установите переменную среды WORKON_HOME чтобы изменить каталог по умолчанию, в котором создаются виртуальные среды Python, например, для использования /opt/python_envs:

$ export WORKON_HOME=/opt/python_envs

Создайте виртуальную среду для проекта:

$ cd my_project_folder
$ virtualenv my_virtual_env_name

Активируйте виртуальную среду, которую вы только что создали. Предполагая, что вы также установили WORKON_HOME=/opt/python_envs:

$ source $WORKON_HOME/my_virtual_env_name/bin/activate

Установите все пакеты Python, необходимые для вашего проекта, используя один из следующих двух методов.

Способ 1 - установить с помощью pip из командной строки:

$ pip install python_package_name1
$ pip install python_package_name2

Способ 2 - установить с помощью файла requests.txt:

$ echo "python_package_name1" >> requests.txt
$ echo "python_package_name2" >> requests.txt
$ pip install -r ./requests.txt

По желанию, но настоятельно рекомендуется установить virtualenvwrapper. Он содержит полезные команды для упрощения работы с виртуальными средами Python:

$ pip install virtualenvwrapper
$ source /usr/local/bin/virtualenvwrapper.sh

В Windows установите virtualenvwrapper с помощью:

$ pip install virtualenvwrapper-win

Основное использование virtualenvwrapper Создайте новую виртуальную среду:

$ mkvirtualenv my_virtual_env_name

Список всех виртуальных сред:

$ lsvirtualenv

Активировать виртуальную среду:

$ workon my_virtual_env_name

Удалить виртуальную среду (осторожно! Это необратимо!):

$ rmvirtualenv my_virtual_env_name

Я надеюсь, что это поможет!

Ответ 6

Для решения проблемы сделайте следующее:

Сначала удалите NumPy

sudo pip uninstall numpy

Установите numpy с опцией --no-cache-dir

sudo pip install --no-cache-dir numpy

И указать любую конкретную версию, например, 1.14.2

sudo pip install --no-cache-dir numpy==1.14.2

Ответ 7

Для тех, кто использует anaconda Python:

conda update anaconda

Ответ 8

У меня была такая же ошибка при попытке запустить spyder. Msgstr "RuntimeError: модуль скомпилирован для версии API 0xb, но эта версия numpy - 0xa". Эта ошибка появилась, как только я по ошибке изменил цифровую версию своей машины (мне показалось, что я в venv). Если вы используете spyder, установленный с conda, я советую использовать только conda для управления пакетами.

Это работает для меня:

conda install anaconda

(У меня была конда, но на моей машине не было анаконды) тогда:

conda update numpy

Ответ 9

Следующая команда работала для меня:

conda install -c anaconda numpy

Ответ 10

Возможно, вы захотите проверить версию matplotlib.

Как-то я установил dev-версию matplotlib, которая вызвала проблему. Исправлено его понижение до стабильного выпуска.

Можно также попробовать python -v -c 'import YOUR_PACKAGE' 2>&1 | less, чтобы увидеть, где произошла ошибка, и если строки выше ошибки могут дать вам несколько советов.

Ответ 11

Вы также можете проверить свой $PYTHONPATH. Я изменил мой в ~/.bashrc, чтобы получить еще один пакет для работы.

Чтобы проверить свой путь:

    echo $PYTHONPATH

Изменить свой путь (я использую nano, но вы можете редактировать другой способ)

    nano ~/.bashrc

Найдите строку с export PYTHONPATH...

После внесения изменений не забывайте

   source ~/.bashrc

Ответ 12

Я получил ту же проблему с модулем кватерниона. При обновлении модулей с помощью conda версия numpy не обновляется до последней. Если принудительное обновление с помощью команды pip pip install --upgrade numpy + установить модуль кватерниона с помощью pip install --user numpy numpy-quaternion, проблема устранена. Может быть, проблема исходит от обалденной версии. Вот результат выполнения:

Python 2.7.14 |Anaconda custom (64-bit)| (default, Oct 15 2017, 03:34:40) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.

>>> import numpy as np
>>> print np.__version__
1.14.3
>>>

(base) C:\Users\jc>pip install --user numpy numpy-quaternion
Requirement already satisfied: numpy in d:\programdata\anaconda2\lib\site-packages (1.14.3)
Collecting numpy-quaternion
  Downloading https://files.pythonhosted.org/packages/3e/73/5720d1d0a95bc2d4af2f7326280172bd255db2e8e56f6fbe81933aa00006/numpy_quaternion-2018.5.10.13.50.12-cp27-cp27m-win_amd64.whl (49kB)
    100% |################################| 51kB 581kB/s
Installing collected packages: numpy-quaternion
Successfully installed numpy-quaternion-2018.5.10.13.50.12

(base) C:\Users\jc>python
Python 2.7.14 |Anaconda custom (64-bit)| (default, Oct 15 2017, 03:34:40) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.

>>> import numpy as np
>>> import quaternion
>>> 

Ответ 13

Я столкнулся с той же проблемой из-за несоответствий в документации. На этой странице сказано, что примеры в документации лучше всего работают с python 3.x: https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_setup/py_intro/py_intro.html#intro, тогда как эта страница установки содержит ссылки на python 2.7 и более старые версии numpy и matplotlib: https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_setup/py_setup_in_windows/py_setup_in_windows.html.

Моя установка была такова: у меня уже были установлены Python 3.6 и 3.5, но так как в документации OpenCv-python сказано, что она лучше всего работает с 2.7.x, я также установил эту версию. После того, как я установил numpy (в каталоге Python27, без pip, но с экстрактором по умолчанию, поскольку pip не является частью установки Python 2.7 по умолчанию, как в RuntimeError: module compiled against API version a but this version of numpy is 3.6), я запустил этот RuntimeError: module compiled against API version a but this version of numpy is ошибка. Я пробовал много разных версий numpy и opencv, но безрезультатно. Наконец, я просто удалил numpy из python27 (просто удалите папку в пакетах сайта, а также любые другие оставшиеся файлы с именами numpy) и установил последние версии numpy, matplotlib и opencv в версии Python3.6 с помощью pip no проблема. С тех пор запускаю opencv.

Надеюсь, это сэкономит кому-то время.

Ответ 14

Это работает для меня:

Мой pip не работает после обновления, поэтому первое, что мне нужно сделать, чтобы исправить это с

sudo gedit /usr/bin/pip

Изменить линию

from pip import main

в

from pip._internal import main

Затем,

 sudo pip install -U numpy

Ответ 15

Эта команда решила мою проблему.

pip3 install --upgrade numpy