2012-02-17 9 views
6

he seguido este guide a OpenCV configuración 2.3.1 en Python 2.7 con Eclipse.OpenCV 2.3.1 Python con Eclipse muestra errores synatx pero todavía funciona

También copié las bibliotecas en mi carpeta de pitón:

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

Aquí es mi programa Hola Mundo, que se ejecuta correctamente (crea una ventana llamada y muestra la imagen), pero Eclipse sigue mostrando errores de sintaxis

Eclipse showing syntax errors

dice todo error "Undefined variable de importación"

Aquí están mis ajustes de pitón para este proyecto:

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

configuración Tienes que mi PYTHONPATH incorrectamente? ¿Cómo puedo hacer que Eclipse funcione correctamente?

Gracias

Respuesta

0

sería útil para mostrar el error que está recibiendo y su código. Sin embargo, sospecho que el problema es que los errores de sintaxis que PyDev muestra se basan en su propio análisis sintáctico del código, que es mucho más simple que el intérprete real de Python. Si su código se ejecuta, entonces las variables aparentemente indefinidas deben definirse, pero el analizador de PyDev simplemente no puede verlas y las informa como "indefinidas".

La causa de esto es que OpenCV no define explícitamente sus variables de una manera que puede ser leído por PyDev. Lamentablemente, no tengo una solución fácil. Usualmente trato el problema usando from ... import ... para que el error solo aparezca una vez. Si lo desea, puede escribir un módulo contenedora que importe explícitamente las variables en su espacio de nombres local, luego importe ese módulo en su lugar.

4

Tuve el mismo problema, todo funcionó correctamente aunque había errores de importación indefinidos por todas partes. Finalmente lo resolví agregando 'cv' a la lista de Builtins forzados: Ventana> Preferencias> Pydev> Intérprete - Python> Builtins forzados> Nuevo.

Así es como me encontré con la solución:

How to use code completion into Eclipse with OpenCV

espero que esto puede ayudar a usted también.

+0

Para usuarios de cv2 agregue 'cv2' a la lista – JxAxMxIxN

2

EDIT: FYI, de acuerdo con the top answer here, si recién está empezando (¡como yo!) Es casi seguro que es mejor usar la interfaz cv2 en lugar de la anterior proporcionada en cv2.cv. El autor de esa respuesta, Abid Rahman, tiene some tutorials que se ven muy bien. (fin EDITAR)

Utilicé las herramientas de Debian para instalar el paquete python-opencv. No había .../dist-packages/OpenCV que se encuentran, y el archivo cv.py sólo contenía:

from cv2.cv import * 

estoy bastante experiencia con Python y por completo para que el acceso a las bibliotecas de Python externos, así que esto parecía una especie de solución relacionada con eso. No es así, aparentemente.Seguí el enlace de Casper arriba, y encontré la solución que él usó (que funcionó para mí), pero no estaba contento de usar "construcciones internas forzadas" cuando no estaba completamente seguro de las consecuencias.

Sin embargo, la segunda respuesta más baja es mi solución preferida. En lugar de

import cv 

estoy usando

import cv2.cv as cv 

De lo que puedo decir, esto sólo elimina el intermediario cv.py de la cadena de importación, si eso tiene sentido. Una operación de guardar/cerrar/recargar mi script hizo que Eclipse reconociera cv.LoadImageM como se definió y que autocompletara otras cosas desde OpenCV.

Estoy reproduciendo esa respuesta aquí porque me parece más limpia y encontré esta pregunta primero cuando busqué la respuesta al mismo problema.

Cuestiones relacionadas