2012-06-30 5 views
1

Недавно мне удалось запустить SimpleCV, столкнувшись с некоторыми проблемами. Теперь у меня установлен рабочий SimpleCV и я использую его с Eclipse Indigo. Тем не менее, весь мой импорт из SimpleCV отмечен красным цветом, а Eclipse заявляет, что он не может найти указанный импорт (хотя импортированные функции работают нормально).Завершение кода SimpleCV с помощью Eclipse

Есть ли способ распознать Eclipse импорт из SimpleCV, чтобы я мог использовать его функциональность с полным кодом кода Ctrl-Space?

Я попытался добавить «SimpleCV» к форсированным встроенным устройствам, но безуспешно. (Это то, что я сделал, когда у меня была такая же проблема для OpenCV, и тогда она работала)

Спасибо за любой совет!

ответ

1

Импорт очень пробит в SimpleCV. Я боролся с той же проблемой, с которой вы сталкиваетесь. И причина, по которой они не хотят ее исправлять (согласно их ответам на их сайте (http://help.simplecv.org/question/472/code-completion-with-eclipse/), не потому, что они «все используют vim, emacs, vi», а потому, что многие из их кодов полагаются на вытягивание многих библиотек в локальное пространство имен с * импортом. Это ленивое программирование в лучшем случае, и очень плохо программирование иначе.

Heck, вы не можете даже импортировать некоторые из своих файлов самих по себе, потому что они полагаются на SimpleCV инициализация .py файла и базы .py, который уже импортирован. Оба этих файла имеют большой объемный импорт. Мне было интересно, почему для импорта SimpleCV понадобилось более 2 секунд для работы на моем ПК с SSD. Теперь я знаю.

Их init.py файл имеет следующие импортные товары:

from SimpleCV.base import * 
from SimpleCV.Camera import * 
from SimpleCV.Color import * 
from SimpleCV.Display import * 
from SimpleCV.Features import * 
from SimpleCV.ImageClass import * 
from SimpleCV.Stream import * 
from SimpleCV.Font import * 
from SimpleCV.ColorModel import * 
from SimpleCV.DrawingLayer import * 
from SimpleCV.Segmentation import * 
from SimpleCV.MachineLearning import * 

И их файл base.py имеет еще больше импорта:

import os 
import sys 
import warnings 
import time 
import socket 
import re 
import urllib2 
import types 
import SocketServer 
import threading 
import tempfile 
import zipfile 
import pickle 
import glob #for directory scanning 
import abC#abstract base class 
import colorsys 
import logging 
import pygame as pg 
import scipy.ndimage as ndimage 
import scipy.stats.stats as sss #for auto white balance 
import scipy.cluster.vq as scv  
import scipy.linalg as nla # for linear algebra/least squares 
import math # math... who does that 
import copy # for deep copy 
import numpy as np 
import scipy.spatial.distance as spsd 
import scipy.cluster.vq as cluster #for kmeans 
import pygame as pg 
import platform 
import copy 
import types 
import time 

from numpy import linspace 
from scipy.interpolate import UnivariateSpline 
from warnings import warn 
from copy import copy 
from math import * 
from pkg_resources import load_entry_point 
from SimpleHTTPServer import SimpleHTTPRequestHandler 
from types import IntType, LongType, FloatType, InstanceType 
from cStringIO import StringIO 
from numpy import int32 
from numpy import uint8 
from EXIF import * 
from pygame import gfxdraw 
from pickle import * 

Вы знаете, как они утверждают, чтобы преобразовать все эти разнородные библиотеки CV и применять «вещий» пути к ним. Но этот беспорядок импорта просто прав, доказывает, что он ошибается.

Моя попытка зафиксировать их импорт заключалась в том, чтобы удалить все эти файлы импорта из файла init.py, что помогает с задержкой завершения кода, которую он представляет в eclipse. Затем импортируйте директорию яиц SimpleCV (C: \ Python27 \ Lib \ site-packages \ simplecv-1.3-py2.7.egg) в eclipse как внешнюю библиотеку. После этого я был в состоянии управлять этим:

from SimpleCV.ImageClass import Image 

То же самое касается импорта Цвет:

from SimpleCV.Color import Color 

Есть циклический импорт, поэтому остерегайтесь тех, так как они могут укусить вас. У меня был один ранее, пытаясь импортировать SimpleCV.Color перед импортом SimpleCV.ImageClass. Обратите внимание, что с приведенными выше инструкциями я, похоже, могу получить завершение кода из Eclipse.

+1

Боюсь, что у меня больше нет SimpleCV на моей системе, поэтому я не могу это проверить. Через некоторое время я просто сдался, и переключился на OpenCV. Как только вы пройдете начальную кривую обучения, это действительно не так уж плохо. Хорошо сделано, чтобы заставить его работать! У меня просто не было терпения ... – casper