it-swarm.com.ru

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 ГГц DDR3

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

68
Isaiah Nields

обновить NumPy до последней версии

pip install numpy --upgrade
96
Joshua Owoyemi

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

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, и все было хорошо.

16
JnBrymn

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

Sudo pip install numpy --upgrade --ignore-installed
7
a20

Скорее всего, вы используете 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
Pat Niemeyer

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

Сначала удалить 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
3
GauravLuthra

Я столкнулся с той же проблемой сегодня вечером. Это оказалось проблемой, когда у меня было установлено несколько пакетов. Более старая версия была установлена ​​в /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, чтобы изменить версию 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

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

3
MikeyE

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

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

conda install anaconda

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

conda update numpy
1
Luce Philibert

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

conda update anaconda
1
YakovK

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

conda install -c anaconda numpy
1
Haneesha Thanati

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

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
>>> 
0
user9783973

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

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

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

0
hlin

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

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

Sudo gedit /usr/bin/pip

Правка линию

from pip import main

в

from pip._internal import main

Затем, 

 Sudo pip install -U numpy
0
Paul Chen

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

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

    echo $PYTHONPATH

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

    nano ~/.bashrc

Ищите строку с export PYTHONPATH ...

После внесения изменений не забудьте

   source ~/.bashrc
0
gtcoder

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

pip3 install --upgrade numpy 
0
PALLAMOLLA SAI

Я столкнулся с той же проблемой из-за несоответствий документации .. На этой странице сказано, что примеры в документации лучше всего работают с 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 по умолчанию, как в 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.

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

0
Aleksandar Ruseski