2013-09-24 96 views
6

Tôi đang cố gắng cài đặt pyopencv với pip trong OS X Mountain Lion và nó không thành công bằng cách thiết lập nhập khẩu. Sau đây là công việc của tôi. "Thư viện" trong setuptools là gì? Tôi chưa từng thấy điều đó trước đây. Tôi đã cài đặt opencv thông qua homebrew và những thứ khác. Trong doucmentation của pyopencv, nó không giải thích cài đặt với pip chỉ nguồn cài đặt,cài đặt pyopencv với pip trên Mac OS X

(img2)[email protected] src $ brew install cmake 
Warning: cmake-2.8.11.2 already installed 
(img2)[email protected] src $ brew install cmake --upgrade 
Warning: cmake-2.8.11.2 already installed 
(img2)[email protected] src $ brew install opencv 
Warning: opencv-2.4.6.1 already installed 
(img2)[email protected] src $ brew install boost 
Warning: boost-1.54.0 already installed 
(img2)[email protected] src $ pip install pyopencv 
Downloading/unpacking pyopencv 
    Could not find a version that satisfies the requirement pyopencv (from versions: 2.0.wr1.0.1-demo, 2.0.wr1.0.1, 2.0.wr1.1.0, 2.1.0.wr1.0.0, 2.1.0.wr1.0.1, 2.1.0.wr1.0.2, 2.1.0.wr1.1.0, 2.1.0.wr1.2.0, 2.1.0.wr1.2.0-demo, 2.1.0.wr1.2.0) 
Cleaning up... 
No distributions matching the version for pyopencv 
Storing complete log in /Users/appleparan/.pip/pip.log 
(img2)[email protected] src $ pip install pyopencv==2.1.0.wr1.2.0 
Downloading/unpacking pyopencv==2.1.0.wr1.2.0 
    Downloading pyopencv-2.1.0.wr1.2.0.tar.gz (363kB): 363kB downloaded 
    Running setup.py egg_info for package pyopencv 
    Traceback (most recent call last): 
     File "<string>", line 16, in <module> 
     File "/Users/appleparan/.virtualenvs/img2/build/pyopencv/setup.py", line 92, in <module> 
     from setuptools import setup, find_packages, Extension, Library 
    ImportError: cannot import name Library 
    Complete output from command python setup.py egg_info: 
    Traceback (most recent call last): 

    File "<string>", line 16, in <module> 

    File "/Users/appleparan/.virtualenvs/img2/build/pyopencv/setup.py", line 92, in <module> 

    from setuptools import setup, find_packages, Extension, Library 

ImportError: cannot import name Library 

---------------------------------------- 
Cleaning up... 
Command python setup.py egg_info failed with error code 1 in /Users/appleparan/.virtualenvs/img2/build/pyopencv 
Storing complete log in /Users/appleparan/.pip/pip.log 
(img2)[email protected] src $ python --version 
Python 2.7.5 
(img2)[email protected] src $ pip freeze 
Pillow==2.1.0 
distribute==0.7.3 
matplotlib==1.3.0 
nose==1.3.0 
numpy==1.7.1 
pyparsing==2.0.1 
python-dateutil==2.1 
scipy==0.12.0 
six==1.4.1 
stevedore==0.12 
tornado==3.1.1 
virtualenv==1.10.1 
virtualenv-clone==0.2.4 
virtualenvwrapper==4.1.1 
wsgiref==0.1.2 
(img2)[email protected] src $ 

EDIT: Tôi tìm thấy setuptools nguồn có thư viện và khuyến lâm (https://bitbucket.org/pypa/setuptools/src/27df3c725f9696ba730456f3f444cc2fb5271d4b/setuptools/extension.py?at=default) Nhưng tôi không biết tại sao nó không nhận ra. verison

setuptools của tôi là 1.1.6

(img2)[email protected] src $ pip install setuptools --upgrade 
Requirement already up-to-date: setuptools in /Users/appleparan/.virtualenvs/img2/lib/python2.7/site-packages/setuptools-1.1.6-py2.7.egg 
Cleaning up... 
(img2)[email protected] src $ 
+0

Cài đặt phiên bản ['setuptools'] gần đây (https://pypi.python.org/pypi/setuptools) thay vì' distribution'. – falsetru

+0

Tôi đã xóa bản phân phối và nó không giải quyết được sự cố của tôi. –

+0

Bạn đã cài đặt 'setuptools' sau khi xóa' distribution' chưa? – falsetru

Trả lời

3

Trong phiên bản gần đây của setuptools, Library là bên trong extension.py. pyopencv phải nhập Library làm setuptools.extension.Library không phải setuptools.Library.

+0

Vì vậy ... bạn đang nói đến 'pip cài đặt phần mở rộng' và rằng nên sửa chữa nó? Hoặc để thay đổi mã nguồn của pyopencl trước khi cài đặt nó? Và nếu lần thứ hai ... _seriously, những gì? _ –

+0

Nó đã được thông qua quá lâu thời gian từ câu hỏi này. Tôi không sử dụng opencv bây giờ, tuy nhiên, pyopencv dường như không được duy trì và có vẻ như opencv hỗ trợ python ràng buộc chính nó. xem liên kết này http://www.jeffreythompson.org/blog/2013/08/22/update-installing-opencv-on-mac-mountain-lion/ (không chắc chắn về yosemite) và cách thử phương pháp này? –

2

thay đổi

from setuptools import setup, find_packages, Extension, Library 

để

from setuptools import * 
from setuptools.extension import * 
0

Bạn có thể in python để chạy python phiên dịch và sau đó in sau trong python:

nhập khẩu sys
sys.path

Tìm dòng tương tự với /Library/Python/2.7/site-packages ở đầu ra. In exit() để thoát khỏi trình thông dịch python.

Trong dòng lệnh phát hành lệnh: cd /Library/Python/2.7/site-packages và liệt kê tệp với lệnh ls. Tìm tập tin 'cv.py' và 'cv2.so'. Họ nên ở đó. Sau đó, hãy tham khảo ~/.bash_profile lệnh phát hành tệp cat ~/.bash_profile để tìm số PYTHONPATH của bạn: có dòng tương tự với export PYTHONPATH=/usr/local/lib/python2.7/site-packages. Lệnh phát hành cd /usr/local/lib/python2.7/site-packages để chuyển vào thư mục đó.

Bây giờ bạn có thể tạo liên kết tượng trưng cho lệnh cv2.so và cv.py phát hành: sudo ln -s /usr/local/lib/python2.7/site-packages/cv.py /Library/Python/2.7/site-packages/cv.pysudo ln -s /usr/local/lib/python2.7/site-packages/cv2.so /Library/Python/2.7/site-packages/cv2.so.

+1

Vui lòng xem xét việc tạo mã hoặc lệnh thích hợp để làm cho câu trả lời của bạn dễ đọc hơn. Cảm ơn và chào đón tại SA. Ngoài ra, hãy giải thích lý do giải pháp của bạn hoạt động. – Felix