2015-02-14 33 views
25

Khi tôi cài đặt OpenCV sử dụng bia, tôi có vấn đề này bất cứ khi nào tôi chạy lệnh này để kiểm tra python -c "import cv2"Tôi làm cách nào để nâng cấp gọn gàng?

RuntimeError: module compiled against API version 9 but this version of numpy is 6 
Traceback (most recent call last): 
    File "<string>", line 1, in <module> 
ImportError: numpy.core.multiarray failed to import 

tôi đã cố gắng để nâng cấp NumPy, nhưng điều này là khó hiểu

>>> import numpy 
>>> print numpy.__version__ 
1.6.1 

Khi tôi chạy brew để nâng cấp numpy, tôi đã nhận được vấn đề này.

brew install -u numpy 
Warning: numpy-1.9.1 already installed 

Khi tôi gỡ bỏ cài đặt nó

sudo pip install numpy 
Requirement already satisfied (use --upgrade to upgrade): numpy in ./anaconda/lib/python2.7/site-packages 

Tôi đã theo thread này và xóa Anaconda từ mac của tôi.

pip install numpy 
Requirement already satisfied (use --upgrade to upgrade): numpy in /Library/Python/2.7/site-packages 

Nhưng không có gì thay đổi. Làm thế nào tôi có thể liên kết phiên bản numpy để opencv?

Trả lời

31

Vì chúng tôi có hai bộ nhớ trong hệ thống. Một là cài đặt bởi brew và thứ hai được cài đặt bởi pip. Vì vậy, để giải quyết vấn đề, chúng ta cần phải xóa một và sử dụng cài đặt mặc định numpy bởi opencv.

kiểm tra đường dẫn

import numpy 
print numpy.__path__ 

và xóa nó bằng tay sử dụng rm

+12

Nó dường như không được làm việc cho Mac OSX El Capitan, bởi vì (a) nó từ chối xóa thư mục của NumPy đó là trong '/ System/Library/Frameworks/Python.framework/Phiên bản/2.7/Extras/lib/python', và (b) đây thường không phải là cách tiếp cận tốt, –

+0

@ ИванГеоргиев: Còn cách nào khác? – aasu

3

tôi đã cố gắng làm sudo pip uninstall numpy thay thế, vì rm đã không làm việc lần đầu tiên.

Hy vọng điều đó sẽ hữu ích.

Gỡ cài đặt rồi cài đặt lại.

13

Lỗi mà bạn đã đề cập xảy ra khi bạn có hai phiên bản gọn gàng trên hệ thống của mình. Như bạn đã đề cập đến phiên bản numpy bạn đã nhập vẫn chưa được nâng cấp kể từ khi bạn cố gắng nâng cấp nó thông qua pip (Nó sẽ nâng cấp phiên bản tồn tại trong '/Library/Python/2.7/site-packages'). Tuy nhiên Python vẫn tải các gói từ '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy' nơi các gói được cài đặt sẵn hoạt động. Để nâng cấp phiên bản đó, bạn phải sử dụng easy_install. Cách khác xung quanh vấn đề này là sử dụng virtualenv và thiết lập môi trường mới với tất cả các yêu cầu bạn cần.

+10

'sudo easy_install numpy' tìm kiếm đã thêm đường dẫn gọn gàng mới nhất (đã tồn tại coz của' sudo pip install numpy') của tôi. Perfect soln. –

+1

Có vấn đề tương tự. 'sudo easy_install numpy'. Nó đã xóa trước đó và cập nhật mới nhất. Traceback 'Tìm kiếm numpy Kết quả phù hợp nhất: numpy 1.11.2 Xóa numpy 1.8.2 từ tệp dễ install.pth Thêm numpy 1.11.2 vào tệp easy-install.pth ' – user123

6

FYI,

Khi bạn sử dụng hoặc nhập khẩu Tensorflow, lỗi tương tự có thể xảy ra tương tự (do NumPy):

RuntimeError: module compiled against API version 0xa but this version of numpy is 0x9 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/__init__.py", line 23, in <module> 
    from tensorflow.python import * 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/__init__.py", line 60, in <module> 
    raise ImportError(msg) 
ImportError: Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/__init__.py", line 49, in <module> 
    from tensorflow.python import pywrap_tensorflow 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/pywrap_tensorflow.py", line 28, in <module> 
    _pywrap_tensorflow = swig_import_helper() 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/pywrap_tensorflow.py", line 24, in swig_import_helper 
    _mod = imp.load_module('_pywrap_tensorflow', fp, pathname, description) 
ImportError: numpy.core.multiarray failed to import 


Error importing tensorflow. Unless you are using bazel, 
you should not try to import tensorflow from its source directory; 
please exit the tensorflow source tree, and relaunch your python interpreter 
from there. 

Tôi đi theo giải pháp Elmira và Drew, sudo easy_install numpy, và nó làm việc!

sudo easy_install numpy 
Searching for numpy 
Best match: numpy 1.11.3 
Removing numpy 1.8.2 from easy-install.pth file 
Adding numpy 1.11.3 to easy-install.pth file 

Using /usr/local/lib/python2.7/dist-packages 
Processing dependencies for numpy 
Finished processing dependencies for numpy 

Sau đó tôi có thể sử dụng Tensorflow mà không có lỗi.

3

Vì bạn đã cài đặt nhiều phiên bản phần mềm.

Hãy thử pip uninstall numpypip list | grep numpy nhiều lần, cho đến khi bạn thấy không có đầu ra từ pip list | grep numpy.

Sau đó, pip install numpy sẽ giúp bạn nhận được phiên bản mới nhất của vạm vỡ.

1

Sau khi cài đặt pytorch, tôi đã nhận lỗi tương tự khi tôi sử dụng:

import torch 

Loại bỏ NumPy không giúp (tôi thực sự đổi tên NumPy, vì vậy quay trở lại sau khi nó đã không làm việc). Các lệnh sau đã làm việc với tôi:

sudo pip install numpy --upgrade 
sudo easy_install numpy 
1

Tất cả như nhau.

sudo easy_install numpy 

My Traceback

Searching for numpy 

Best match: numpy 1.13.0 

Adding numpy 1.13.0 to easy-install.pth file 

Using /Library/Python/2.7/site-packages 

Processing dependencies for numpy 
1
pip install numpy --upgrade 

Nó làm việc cho tôi

0

Nếu bạn gặp phải không có lỗi phép với
pip install -U numpy
thử
pip install --user -U numpy

0

Nếu bạn đang mắc kẹt trong một máy mà bạn không có quyền truy cập root, thì tốt hơn là xử lý cài đặt python tùy chỉnh.

Cài đặt anaconda hoạt động như một sự quyến rũ.

https://www.scipy.org/install.html

https://www.anaconda.com/download/

Sau khi cài đặt,

[bash] $/xxx/DevTools/python/Anaconda/bin/pip danh sách --format = cột | grep NumPy

NumPy 1.13.3 numpydoc 0.7.0

-1

Khi bạn đã có một phiên bản cũ của NumPy, sử dụng này:
pip install numpy --upgrade.

Nếu nó vẫn không hoạt động, hãy thử:
pip install numpy --upgrade --ignore-installed

Các vấn đề liên quan