1

最近、いくつかの問題が発生した後、SimpleCVを起動して実行することができました。これで、動作するSimpleCVがインストールされ、EclipseIndigoで使用しています。ただし、SimpleCVからのすべてのインポートは赤でマークされており、Eclipseは、指定されたインポートが見つからないと述べています(インポートされた関数は正常に機能します)。

EclipseにSimpleCVからのインポートを認識させて、Ctrl-Spaceコードコンプリート機能を利用できるようにする方法はありますか?

Forced Builtinsに「SimpleCV」を追加しようとしましたが、成功しませんでした。(これは、OpenCVで同じ問題が発生したときに行ったことであり、その後は機能しました)

アドバイスありがとうございます!

4

1 に答える 1

1

SimpleCVではインポートが非常に壊れています。私はあなたが抱えているのと同じ問題に苦しんでいます。そして、彼らがそれを修正したくない理由は(彼らのサイト(http://help.simplecv.org/question/472/code-completion-with-eclipse/)の回答によると)彼らが「すべてを使用している」からではありませんvim、emacs、vi "ですが、それらのコードの多くは、*インポートを使用してローカル名前空間に多くのライブラリをプルすることに依存しているためです。それはせいぜい怠惰なプログラミングであり、そうでなければ本当に悪いプログラミングです。

SimpleCVのinit.pyファイルとbase.pyファイルがすでにインポートされていることに依存しているため、一部のファイルを単独でインポートすることもできません。これらのファイルは両方とも、多くの包括的なインポートがあります。SSDを搭載したPCでSimpleCVのインポートを実行するのに2秒以上かかるのはなぜだろうと思っていました。今私は知っている。

それらの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

Colorのインポートについても同じことが言えます。

from SimpleCV.Color import Color

周期的なインポートがありますので、それらがあなたを噛むかもしれないのでそれらに注意してください。SimpleCV.ImageClassをインポートする前に、SimpleCV.Colorをインポートしようとしたときに、私自身が以前に1つ持っていました。上記の手順で、Eclipseからコード補完を取得できるようです。

于 2013-04-05T20:41:23.527 に答える