Simplecv: Python3

Criado em 6 jul. 2016  ·  11Comentários  ·  Fonte: sightmachine/SimpleCV

Parece que SimpleCV não está sendo executado com Python3. Como o Python2 está sendo descontinuado, espero que isso seja corrigido em breve.

Isso é o que eu obtenho com 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'

Comentários muito úteis

Olá @mUtterberg ... meu fork tentou mover SimpleCV de Python2 para Python3. Eu consertei a maioria dos problemas. O principal bloqueador atualmente é o tratamento de dados internos. SimpleCV usa um iplimage de 3 canais (RGB) internamente como padrão, mas o iplimage está obsoleto. É recomendado usar numpy.ndarray em vez disso, mas eu não encontrei tempo para portar nenhum código. Estou disposto a ajudar se você (ou qualquer outra pessoa) tiver dúvidas.

Todos 11 comentários

Se os parênteses ausentes forem a única coisa necessária para migrar, isso será uma solução fácil. Tentarei consultar um especialista em migração para ver que outras preocupações podem haver.

Para corrigi-lo em algumas coisas: Python2, ou mais precisamente, Python27 não está sendo eliminado - existem algumas tentativas decentes de fazer isso, mas aqueles que sabem o que diabos estão fazendo, não desista a pressão. Python3X em comparação com Python27 é muito mais confuso, estranho e frustrante, não algo que eu recomendaria para iniciantes em programação. Vá em frente e experimente o Python27 e acredite em mim quando digo que você vai adorar (a menos que você tenha se acostumado com muitas funções específicas do Python3X, e deixe-me dizer, não há muitas delas)

Edit: Esta é uma declaração de alguns anos, vou mantê-la aqui, mas não é mais válida.

O suporte para Python 2.7 termina em 2020, então acho que é uma preocupação válida. Acho que importar futuros é uma maneira simples de refatorar os erros da instrução de impressão. Alguém sabe o que mais precisa ser alterado para permitir a compatibilidade com versões futuras?

@mUtterberg Há também a atualização de OpenCV2 para OpenCV3 pela qual a estrutura SimpleCV deve ser submetida.

Sou novo em Python e espero começar com alguma codificação de câmera / visão no meu Raspberry Pi. Já instalei o OpenCV 3.4.1 (eventualmente), mas acho que simplecv seria um ponto de partida melhor.

Mas o site simplecv parece bastante desatualizado e, como visto acima, a instalação não funcionará corretamente com o Python 3.

Tentei instalar o simplecv, mas quando tento executar o simplecv na linha de comando, recebo os mesmos erros de impressão acima. Tentei consertar isso adicionando parênteses ao código Python, mas comecei a receber vários erros de 'importação' quando tento executar o simplecv.

Não sei como seria difícil atualizar o simplecv para funcionar no Python3, mas certamente apreciaria tentar se / quando isso acontecer.

Abaixo estão os erros que estou recebendo agora ...

pi @ raspberrypi : ~ $ simplecv
RuntimeError: módulo compilado contra a versão da API 0xc, mas esta versão do numpy é 0xa
Traceback (última chamada mais recente):
Arquivo "/ usr / local / bin / simplecv", linha 7, em
de SimpleCV.Shell import main
Arquivo "/usr/local/lib/python3.5/dist-packages/SimpleCV/__init__.py", linha 3, em
de SimpleCV.base import *
Arquivo "/usr/local/lib/python3.5/dist-packages/SimpleCV/base.py", linha 26, em
importar scipy.ndimage como ndimage
Arquivo "/usr/local/lib/python3.5/dist-packages/scipy/ndimage/__init__.py", linha 161, em
from .filters import *
Arquivo "/usr/local/lib/python3.5/dist-packages/scipy/ndimage/filters.py", linha 37, em
a partir de . import _nd_image
ImportError: numpy.core.multiarray falhou ao importar

@chrisgavinlondon , a Sight Machine parece ter abandonado esta biblioteca, mas há várias ramificações dela. Acabei fazendo um fork dele e mudei a ponto de poder instalar e executá-lo no meu Raspberry Pi, cujo padrão é Python 2.7. Os bugs da perspectiva 2.7 foram SUPER fáceis de consertar uma vez que eu estava executando a versão do meu fork. Estou trabalhando para torná-lo uma versão moderna do Python, mas tenho certeza de que outros estão trabalhando em seus próprios garfos há muito mais tempo do que eu! Neste ponto, talvez seja melhor escolher o garfo sólido de alguém e levar nossa festa SimpleCV lá.
Mas quem sabe?? Talvez @andrewbaldock @bremac @demaagdk @doclrogers @idfarmer @mechiris @oostendo @struckmannk ou @xamox veja um desses tópicos e decida pedir ajuda às pessoas! Manter uma biblioteca, especialmente uma tão substancial, dá muito trabalho.

Olá @mUtterberg ... meu fork tentou mover SimpleCV de Python2 para Python3. Eu consertei a maioria dos problemas. O principal bloqueador atualmente é o tratamento de dados internos. SimpleCV usa um iplimage de 3 canais (RGB) internamente como padrão, mas o iplimage está obsoleto. É recomendado usar numpy.ndarray em vez disso, mas eu não encontrei tempo para portar nenhum código. Estou disposto a ajudar se você (ou qualquer outra pessoa) tiver dúvidas.

Olá @mUtterberg ... meu fork tentou mover SimpleCV de Python2 para Python3. Eu consertei a maioria dos problemas. O principal bloqueador atualmente é o tratamento de dados internos. SimpleCV usa um iplimage de 3 canais (RGB) internamente como padrão, mas o iplimage está obsoleto. É recomendado usar numpy.ndarray em vez disso, mas eu não encontrei tempo para portar nenhum código. Estou disposto a ajudar se você (ou qualquer outra pessoa) tiver dúvidas.

Olá @mUtterberg , só quero usar o SimpleCV para encontrar um círculo, você acha que consigo fazer isso com seu fork? Ou ainda não está pronto? Obrigado

+1

Python 2 está oficialmente encerrado. Existe algum plano para tornar o simplecv python 3 compatível? É um pacote legal e simples de entender. Obrigado.

@jairoareyes Acabei usando o próprio OpenCV, já que os lançamentos recentes da API python são muito mais intuitivos e mais ou menos negam a necessidade de uma API de terceiros.

Esta página foi útil?
0 / 5 - 0 avaliações