Parece que SimpleCV no se está ejecutando con Python3. Dado que Python2 se está eliminando gradualmente, espero que esto se solucione bastante pronto.
Esto es lo que obtengo con sudo pip3 install SimpleCV:
Running setup.py install for SimpleCV
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/DrawingLayer.py", line 40
def __init__(self, (width, height)):
^
SyntaxError: invalid syntax
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/base.py", line 139
print 'unit test'
^
SyntaxError: Missing parentheses in call to 'print'
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/Color.py", line 213
print a
^
SyntaxError: Missing parentheses in call to 'print'
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/Features/BOFFeatureExtractor.py", line 68
print "Opening file: " + infile
^
SyntaxError: Missing parentheses in call to 'print'
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/Features/Blob.py", line 876
print self.mHullMask
^
SyntaxError: Missing parentheses in call to 'print'
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/Features/BlobMaker.py", line 97
except RuntimeError,e:
^
SyntaxError: invalid syntax
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/EXIF.py", line 1182
y = 0L
^
SyntaxError: invalid syntax
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/Font.py", line 68
print "Please pass a string"
^
SyntaxError: Missing parentheses in call to 'print'
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/MachineLearning/TreeClassifier.py", line 190
print "Opening file: " + infile
^
SyntaxError: Missing parentheses in call to 'print'
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/MachineLearning/SVMClassifier.py", line 181
print "Opening file: " + infile
^
SyntaxError: Missing parentheses in call to 'print'
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/MachineLearning/NaiveBayesClassifier.py", line 120
print "Opening file: " + infile
^
SyntaxError: Missing parentheses in call to 'print'
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/MachineLearning/KNNClassifier.py", line 153
print "Opening file: " + infile
^
SyntaxError: Missing parentheses in call to 'print'
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/Stream.py", line 62
except socket.error, e:
^
SyntaxError: invalid syntax
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/ImageClass.py", line 132
print "You need to install Beatutiul Soup to use this function"
^
SyntaxError: Missing parentheses in call to 'print'
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/Camera.py", line 363
print "coord: (" + str(d.mouseX) + "," + str(d.mouseY) + "), color: " + str(i.getPixel(d.mouseX,d.mouseY))
^
SyntaxError: invalid syntax
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/tests/test_display.py", line 80
print val
^
SyntaxError: Missing parentheses in call to 'print'
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/tests/YCrCbtests.py", line 6
print "Converted to YCrCb\n"
^
SyntaxError: Missing parentheses in call to 'print'
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/tests/vcamera_tests.py", line 19
print str(i) + ": " + str(props[i]) + "\n"
^
SyntaxError: invalid syntax
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/tests/test_cameras.py", line 17
print str(i) + ": " + str(props[i]) + "\n"
^
SyntaxError: invalid syntax
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/tests/tests.py", line 74
print val
^
SyntaxError: Missing parentheses in call to 'print'
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/tests/test_optional.py", line 91
print foundtext
^
SyntaxError: Missing parentheses in call to 'print'
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/tests/test_stereovision.py", line 54
print val
^
SyntaxError: Missing parentheses in call to 'print'
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/Shell/Shell.py", line 71
print "args", arg
^
SyntaxError: Missing parentheses in call to 'print'
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/Shell/Example.py", line 28
print "Available Examples:"
^
SyntaxError: Missing parentheses in call to 'print'
File "/usr/local/lib/python3.4/dist-packages/SimpleCV/Shell/Tutorial.py", line 35
print lb
^
SyntaxError: Missing parentheses in call to 'print'
Si los parientes que faltan son lo único que se necesita para migrar, esta será una solución fácil. Intentaré consultar a un experto en migración para ver qué otras preocupaciones puede haber.
Para corregirlo en algunas cosas: Python2, o más exactamente, Python27 no se está eliminando gradualmente; hay algunos intentos decentes de varias fuentes para hacerlo, pero aquellos que saben lo que están haciendo en el mundo, no cedan. la presión. Python3X en comparación con Python27 es mucho más confuso, extraño y frustrante, no es algo que recomendaría a los principiantes de la programación. Simplemente siga adelante y pruebe Python27, y créame cuando le digo que le encantará (a menos que se haya acostumbrado a muchas funciones específicas de Python3X, y déjeme decirle que no hay muchas)
Editar: Esta es una declaración de hace unos años, la mantendré aquí, pero ya no es válida.
El soporte para Python 2.7 finalizará en 2020, así que creo que es una preocupación válida. Siento que importar futuros es una forma sencilla de refactorizar los errores de la declaración de impresión. ¿Alguien sabe qué más debería cambiar para permitir la compatibilidad con versiones posteriores?
@mUtterberg También está la actualización de OpenCV2 a OpenCV3 que el marco SimpleCV debe someterse.
Soy nuevo en Python y espero comenzar con algo de codificación de cámara / visión en mi Raspberry Pi. Ya instalé OpenCV 3.4.1 (eventualmente) pero creo que simplecv sería un mejor punto de partida.
Pero el sitio web simplecv parece bastante desactualizado y, como se vio anteriormente, la instalación no funcionará correctamente con Python 3.
Intenté instalar simplecv pero cuando intento ejecutar simplecv desde la línea de comandos, obtengo los mismos errores de impresión que los anteriores. He intentado solucionar estos problemas agregando paréntesis al código Python, pero luego empiezo a recibir varios errores de 'importación' cuando intento ejecutar simplecv.
No sé lo difícil que sería actualizar simplecv para que funcione en Python3, pero sin duda agradecería probarlo cuando suceda.
A continuación se muestran los errores que recibo ahora ...
pi @ raspberrypi : ~ $ simplecv
RuntimeError: módulo compilado contra API versión 0xc pero esta versión de numpy es 0xa
Rastreo (llamadas recientes más última):
Archivo "/ usr / local / bin / simplecv", línea 7, en
desde la principal de importación de SimpleCV.Shell
Archivo "/usr/local/lib/python3.5/dist-packages/SimpleCV/__init__.py", línea 3, en
desde SimpleCV.base import *
Archivo "/usr/local/lib/python3.5/dist-packages/SimpleCV/base.py", línea 26, en
importar scipy.ndimage como ndimage
Archivo "/usr/local/lib/python3.5/dist-packages/scipy/ndimage/__init__.py", línea 161, en
desde la importación de filtros *
Archivo "/usr/local/lib/python3.5/dist-packages/scipy/ndimage/filters.py", línea 37, en
de . importar _nd_image
ImportError: numpy.core.multiarray no se pudo importar
@chrisgavinlondon , Sight Machine parece haber abandonado esta biblioteca, pero hay numerosas bifurcaciones. Terminé bifurcándolo y lo cambié hasta el punto de que puedo instalarlo y ejecutarlo en mi Raspberry Pi, que por defecto es Python 2.7. Los errores desde la perspectiva 2.7 fueron soluciones SUPER fáciles una vez que ejecuté la versión de mi fork. Estoy trabajando para actualizarlo a una versión moderna de Python, ¡pero estoy seguro de que otros han estado trabajando en sus propias bifurcaciones mucho más tiempo que yo! En este punto, es mejor que escojamos la bifurcación sólida de alguien y llevemos a nuestra fiesta SimpleCV allí.
¿¿Pero quién sabe?? ¡Quizás @andrewbaldock @bremac @demaagdk @doclrogers @idfarmer @mechiris @oostendo @struckmannk o @xamox verán uno de estos hilos y decidirán pedir ayuda a las personas! Mantener una biblioteca, especialmente una tan importante, es mucho trabajo.
Hola @mUtterberg ... mi bifurcación intentó mover SimpleCV de Python2 a Python3. Arreglé la mayoría de los problemas. El principal bloqueador actualmente es el manejo de datos internos. SimpleCV utiliza internamente una iplimage de 3 canales (RGB) de forma predeterminada, pero la iplimage está obsoleta. Se recomienda usar numpy.ndarray en su lugar, pero no había tenido tiempo para portar ningún código. Estoy dispuesto a ayudar si usted (o cualquier otra persona) tiene preguntas.
Hola @mUtterberg ... mi bifurcación intentó mover SimpleCV de Python2 a Python3. Arreglé la mayoría de los problemas. El principal bloqueador actualmente es el manejo de datos internos. SimpleCV utiliza internamente una iplimage de 3 canales (RGB) de forma predeterminada, pero la iplimage está obsoleta. Se recomienda usar numpy.ndarray en su lugar, pero no había tenido tiempo para portar ningún código. Estoy dispuesto a ayudar si usted (o cualquier otra persona) tiene preguntas.
Hola @mUtterberg , solo quiero usar SimpleCV para encontrar un círculo, ¿crees que con tu tenedor puedo hacerlo? ¿O todavía no está listo? Gracias
+1
Python 2 es oficialmente la puesta del sol. ¿Hay planes para hacer compatible simplecv python 3? Es un paquete genial y fácil de entender. Gracias.
@jairoareyes Terminé usando OpenCV, ya que las versiones recientes de la API de Python son mucho más intuitivas y más o menos niegan la necesidad de una API de terceros.
Comentario más útil
Hola @mUtterberg ... mi bifurcación intentó mover SimpleCV de Python2 a Python3. Arreglé la mayoría de los problemas. El principal bloqueador actualmente es el manejo de datos internos. SimpleCV utiliza internamente una iplimage de 3 canales (RGB) de forma predeterminada, pero la iplimage está obsoleta. Se recomienda usar numpy.ndarray en su lugar, pero no había tenido tiempo para portar ningún código. Estoy dispuesto a ayudar si usted (o cualquier otra persona) tiene preguntas.