Simplecv: Python3

Créé le 6 juil. 2016  ·  11Commentaires  ·  Source: sightmachine/SimpleCV

Il semble que SimpleCV ne fonctionne pas avec Python3. Étant donné que Python2 est en train d'être supprimé, j'espère que cela sera corrigé assez rapidement.

Voici ce que j'obtiens avec 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'

Commentaire le plus utile

Salut @mUtterberg ... mon fork a tenté de déplacer SimpleCV de Python2 à Python3. J'ai corrigé la plupart des problèmes. Le principal bloqueur actuellement est le traitement des données internes. SimpleCV utilise une iplimage à 3 canaux (RVB) en interne par défaut, mais iplimage est obsolète. Il est recommandé d'utiliser numpy.ndarray à la place, mais je n'avais pas trouvé le temps de porter du code. Je suis prêt à vous aider si vous (ou quelqu'un d'autre) avez des questions.

Tous les 11 commentaires

Si les parenthèses manquantes sont la seule chose nécessaire pour migrer, ce sera une solution facile. Je vais essayer de consulter un expert en migration pour voir quelles autres préoccupations il pourrait y avoir.

Pour vous corriger sur quelques points : Python2, ou plus précisément, Python27 n'est pas en train d'être supprimé - il y a des tentatives décentes de diverses sources pour le faire, mais ceux qui savent ce qu'ils font dans le monde, ne bougent pas sous la pression. Python3X par rapport à Python27 est une tonne de plus déroutant, étrange et frustrant, ce n'est pas quelque chose que je recommanderais aux débutants en programmation. Allez-y et essayez Python27, et croyez-moi quand je dis que vous allez l'adorer (à moins que vous ne vous soyez habitué à de nombreuses fonctions spécifiques à Python3X, et laissez-moi vous dire qu'il n'y en a pas beaucoup)

Edit : C'est une déclaration vieille de quelques années, je vais la garder ici, mais elle n'est plus valide.

La prise en charge de Python 2.7 se termine en 2020, je pense donc que c'est une préoccupation valable. J'ai l'impression que l'importation de contrats à terme est un moyen simple de remanier les erreurs de déclaration d'impression. Est-ce que quelqu'un sait ce qu'il faudrait changer d'autre pour permettre la compatibilité ascendante ?

@mUtterberg Il y a aussi la mise à niveau OpenCV2 vers OpenCV3 que le framework SimpleCV doit subir.

Je suis nouveau sur Python et j'espère commencer avec un codage de caméra/vision sur mon Raspberry Pi. J'ai déjà installé OpenCV 3.4.1 (éventuellement) mais je pense que simplecv serait un meilleur point de départ.

Mais le site Web simplecv semble assez obsolète et comme vu ci-dessus, l'installation ne fonctionnera pas correctement avec Python 3.

J'ai essayé d'installer simplecv mais lorsque j'essaie d'exécuter simplecv à partir de la ligne de commande, j'obtiens les mêmes erreurs d'impression que ci-dessus. J'ai essayé de les corriger en ajoutant les parenthèses au code Python, mais je commence ensuite à obtenir diverses erreurs d'importation lorsque j'essaie d'exécuter simplecv.

Je ne sais pas à quel point il serait difficile de mettre à jour simplecv pour fonctionner sur Python3, mais j'apprécierais certainement de l'essayer si/quand cela se produit.

Voici les erreurs que je reçois maintenant...

pi@raspberrypi :~ $ simplecv
RuntimeError : module compilé avec l'API version 0xc mais cette version de numpy est 0xa
Traceback (appel le plus récent en dernier) :
Fichier "/usr/local/bin/simplecv", ligne 7, dans
de SimpleCV.Shell import principal
Fichier "/usr/local/lib/python3.5/dist-packages/SimpleCV/__init__.py", ligne 3, dans
à partir de l'import SimpleCV.base *
Fichier "/usr/local/lib/python3.5/dist-packages/SimpleCV/base.py", ligne 26, dans
importer scipy.ndimage en tant que ndimage
Fichier "/usr/local/lib/python3.5/dist-packages/scipy/ndimage/__init__.py", ligne 161, dans
à partir de l'importation .filters *
Fichier "/usr/local/lib/python3.5/dist-packages/scipy/ndimage/filters.py", ligne 37, dans
de . importer _nd_image
ImportError : numpy.core.multiarray n'a pas pu être importé

@chrisgavinlondon , Sight Machine semble avoir abandonné cette bibliothèque, mais il en existe de nombreuses fourches. J'ai fini par le bifurquer et je l'ai modifié au point que je peux l'installer et l'exécuter sur mon Raspberry Pi, qui est par défaut Python 2.7 . Les bugs du point de vue de la 2.7 étaient des correctifs SUPER faciles une fois que j'utilisais la version de mon fork. Je travaille sur une version moderne de Python, mais je suis sûr que d'autres travaillent sur leurs propres forks depuis bien plus longtemps que moi ! À ce stade, nous ferions peut-être mieux de choisir la fourchette solide de quelqu'un et d'y emmener notre fête SimpleCV.
Mais qui sait?? Peut-être que @andrewbaldock @bremac @demaagdk @doclrogers @idfarmer @mechiris @oostendo @struckmannk ou @xamox verront l'un de ces fils de discussion et décideront de demander de l'aide aux gens ! Maintenir une bibliothèque, surtout une aussi importante, représente beaucoup de travail.

Salut @mUtterberg ... mon fork a tenté de déplacer SimpleCV de Python2 à Python3. J'ai corrigé la plupart des problèmes. Le principal bloqueur actuellement est le traitement des données internes. SimpleCV utilise une iplimage à 3 canaux (RVB) en interne par défaut, mais iplimage est obsolète. Il est recommandé d'utiliser numpy.ndarray à la place, mais je n'avais pas trouvé le temps de porter du code. Je suis prêt à vous aider si vous (ou quelqu'un d'autre) avez des questions.

Salut @mUtterberg ... mon fork a tenté de déplacer SimpleCV de Python2 à Python3. J'ai corrigé la plupart des problèmes. Le principal bloqueur actuellement est le traitement des données internes. SimpleCV utilise une iplimage à 3 canaux (RVB) en interne par défaut, mais iplimage est obsolète. Il est recommandé d'utiliser numpy.ndarray à la place, mais je n'avais pas trouvé le temps de porter du code. Je suis prêt à vous aider si vous (ou quelqu'un d'autre) avez des questions.

Salut @mUtterberg, je veux juste utiliser SimpleCV pour trouver un cercle, pensez-vous que je peux le faire avec votre fourchette ? Ou n'est-il toujours pas prêt ? Merci

+1

Python 2 est officiellement terminé. Est-il prévu de rendre simplecv python 3 compatible ? C'est un package cool et simple à comprendre. Merci.

@jairoareyes J'ai fini par utiliser OpenCV lui-même, car les versions récentes de l'API python sont beaucoup plus intuitives et annulent plus ou moins le besoin d'une API tierce.

Cette page vous a été utile?
0 / 5 - 0 notes