在遇到一些问题之后,我最近设法启动并运行了SimpleCV。现在,我已经安装了一个可运行的SimpleCV,并将其与Eclipse Indigo一起使用。但是,我从SimpleCV导入的所有内容都标记为红色,并且Eclipse声明找不到指定的导入(即使导入的功能可以正常工作)。

有什么方法可以让Eclipse识别从SimpleCV导入的内容,以便我可以利用其Ctrl-Space代码完成功能?

我试图将“ SimpleCV”添加到“强制内置”中,但是没有成功。 (这是我在遇到OpenCV相同的问题时所做的,然后它起作用了)

感谢您的任何建议!

最佳答案

在SimpleCV中,导入已大为中断。我一直在努力解决您遇到的相同问题。而且,他们不想修复它的原因(根据他们在其站点(http://help.simplecv.org/question/472/code-completion-with-eclipse/)上的回答),并不是因为他们“都使用vim,emacs,vi”,而是因为他们的许多代码都依赖于提取大量的库到带有* import的本地名称空间中,充其量是懒惰的编程,否则真的很糟糕。

哎呀,您甚至不能自己导入其中的某些文件,因为它们依赖于已经导入的SimpleCV init.py文件和base.py文件。这两个文件都有大量的全面导入。我想知道为什么导入SimpleCV需要2秒钟以上才能在装有SSD的PC上运行。现在我知道了。

他们的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库,并对其应用“ Pythonic”方式。但是,这种进口混乱只是明确的证明了他们的错误。

我尝试修复其导入内容是从其init.py文件中删除所有这些导入*,这有助于解决eclipse中出现的代码完成滞后的问题。然后将SimpleCV egg目录(C:\ Python27 \ Lib \ site-packages \ simplecv-1.3-py2.7.egg)导入eclipse作为外部库。之后,我可以运行以下命令:

from SimpleCV.ImageClass import Image


导入颜色也是如此:

from SimpleCV.Color import Color


有周期性的进口,所以请当心那些可能会咬你的东西。我自己在导入SimpleCV.ImageClass之前尝试导入SimpleCV.Color的时候就早一点了。注意,按照上面的说明,我似乎能够从Eclipse获得代码完成。

关于python - Eclipse的SimpleCV代码完成,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11272914/

10-13 07:05