2012-02-17 7 views
6

Ho seguito questo guide per impostare OpenCV 2.3.1 in Python 2.7 con Eclipse.OpenCV 2.3.1 Python con Eclipse mostra errori di synatx ma continua a funzionare

Ho anche copiato le librerie nella mia cartella python:

http://i.snag.gy/J9RrC.jpg

Ecco il mio programma Ciao Mondo, che viene eseguito correttamente (crea una finestra denominata e visualizza l'immagine), ma Eclipse mostra ancora gli errori di sintassi

Eclipse showing syntax errors

ogni errore dice "variabile non definita da importazione"

Qui sono le mie impostazioni python per questo progetto:

http://i.snag.gy/KBXiB.jpg http://i.snag.gy/KfTpF.jpg

ho installato il mio PYTHONPATH in modo errato? Come posso far funzionare correttamente Eclipse?

Grazie

risposta

0

sarebbe utile per mostrare l'errore che stai ricevendo e il codice. Tuttavia, ho il sospetto che il problema è che gli errori di sintassi che PyDev mostra sono basati sul proprio parsing del codice, che è molto più semplicistico del vero interprete python. Se il codice viene eseguito, è necessario definire le variabili apparentemente non definite, ma il parser PyDev non può vederle e le riporta come "non definite".

La causa di questo è che OpenCV non definisce esplicitamente le sue variabili in un modo che può essere letto da PyDev. Purtroppo non ho una soluzione facile. Solitamente gestisco il problema utilizzando from ... import ... in modo che l'errore venga visualizzato solo una volta. Se vuoi, puoi scrivere un modulo wrapper che importa in modo esplicito le variabili nel suo spazio dei nomi locale, quindi importa quel modulo.

4

Ho avuto lo stesso problema, tutto è stato eseguito correttamente anche se c'erano errori di importazione non definiti dappertutto. Alla fine l'ho risolto aggiungendo "cv" alla lista dei costruttori forzati: Finestra> Preferenze> Pydev> Interprete - Python> Costruttori forzati> Nuovo.

Questo è come mi sono imbattuto la soluzione:

How to use code completion into Eclipse with OpenCV

Spero che questo possa aiutare anche voi.

+0

Per gli utenti cv2 aggiungere 'cv2' all'elenco – JxAxMxIxN

2

EDIT: FYI, secondo the top answer here, se sei appena iniziato (come me!) È quasi certamente meglio usare l'interfaccia cv2 anziché quella più vecchia fornita in cv2.cv. L'autore di quella risposta, Abid Rahman, ha il numero some tutorials che sembra piuttosto buono. (end EDIT)

Ho usato gli strumenti di Debian per installare il pacchetto python-opencv. Non c'era .../dist-packages/OpenCV per essere trovato, e il file cv.py conteneva solo:

from cv2.cv import * 

Sono abbastanza inesperto con Python e completamente in modo con accesso Python per librerie esterne, quindi questo sembrava una sorta di soluzione correlata a questo. Non così, a quanto pare.Ho seguito il link di Casper sopra, e ho trovato la soluzione che ha usato (che ha funzionato per me), ma non ero felice di usare "builtins forzati" quando non ero del tutto sicuro delle conseguenze.

Tuttavia, la seconda risposta, di livello inferiore, è la soluzione preferita. Invece di

import cv 

sto usando

import cv2.cv as cv 

Da quello che posso dire, questo rimuove solo l'intermediario cv.py dalla catena di importazione, se questo ha un senso. Un salvataggio/chiudi/ricarica del mio script ha permesso a Eclipse di riconoscere cv.LoadImageM come definito e di completare automaticamente altre cose da OpenCV.

Sto riproducendo quella risposta qui perché mi sembra più pulito e ho trovato questa domanda prima quando ho cercato la risposta allo stesso problema.

Problemi correlati