Кажется, SimpleCV не работает с Python3. Поскольку Python2 постепенно прекращается, я надеюсь, что это скоро будет исправлено.
Вот что я получаю с 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'
Если недостающие паренсы - единственное, что нужно для миграции, это легко исправить. Я постараюсь проконсультироваться со специалистом по миграции, чтобы узнать, какие еще могут быть проблемы.
Чтобы исправить вас в нескольких вещах: Python2 или, точнее, Python27 не прекращается - есть несколько приличных попыток из разных источников сделать это, но те, кто знает, что они делают в мире, не сдвигаются с места. давление. Python3X по сравнению с Python27 на тонну более запутанный, странный и разочаровывающий, не то, что я бы рекомендовал новичкам в программировании. Просто попробуйте Python27 и поверьте мне, когда я скажу, что он вам понравится (если вы не привыкли ко многим специфичным для Python3X функциям, и позвольте мне сказать вам, их не так много)
Изменить: это заявление несколько лет назад, я сохраню его здесь, но оно больше недействительно.
Поддержка Python 2.7 заканчивается в 2020 году, поэтому я думаю, что это серьезная проблема. Мне кажется, что импорт фьючерсов - это простой способ рефакторинга ошибок оператора печати. Кто-нибудь знает, что еще нужно изменить, чтобы включить прямую совместимость?
@mUtterberg Существует также обновление OpenCV2 до OpenCV3, которое должна пройти фреймворк SimpleCV.
Я новичок в Python и надеюсь начать кодирование камеры / зрения на моем Raspberry Pi. Я уже установил OpenCV 3.4.1 (в конце концов), но я думаю, что simplecv будет лучшей отправной точкой.
Но веб-сайт simplecv кажется довольно устаревшим, и, как видно выше, установка не будет работать должным образом с Python 3.
Я пробовал установить simplecv, но когда я пытаюсь запустить simplecv из командной строки, я получаю те же ошибки печати, что и выше. Я попытался исправить это, добавив круглые скобки в код Python, но затем я начинаю получать различные ошибки импорта, когда пытаюсь запустить simplecv.
Я не знаю, насколько сложно было бы обновить simplecv для работы на Python3, но я, безусловно, был бы признателен за его попытку, если / когда это произойдет.
Ниже приведены ошибки, которые я получаю сейчас ...
pi @ raspberrypi : ~ $ simplecv
RuntimeError: модуль скомпилирован с версией API 0xc, но эта версия numpy - 0xa
Отслеживание (последний вызов последний):
Файл "/ usr / local / bin / simplecv", строка 7, в
из SimpleCV.Shell import main
Файл "/usr/local/lib/python3.5/dist-packages/SimpleCV/__init__.py", строка 3, в
из импорта SimpleCV.base *
Файл "/usr/local/lib/python3.5/dist-packages/SimpleCV/base.py", строка 26, в
импортировать scipy.ndimage как ndimage
Файл "/usr/local/lib/python3.5/dist-packages/scipy/ndimage/__init__.py", строка 161, в
из .filters import *
Файл "/usr/local/lib/python3.5/dist-packages/scipy/ndimage/filters.py", строка 37, в
из . импортировать _nd_image
ImportError: numpy.core.multiarray не удалось импортировать
@chrisgavinlondon , Sight Machine, похоже, отказалась от этой библиотеки, но есть множество ее ответвлений. Я закончил его разветвлением и изменил его до такой степени, что я могу установить и запустить его на моем Raspberry Pi, который по умолчанию использует Python 2.7. Ошибки с точки зрения 2.7 были СУПЕР легкими исправлениями, когда я запускал версию своего форка. Я работаю над тем, чтобы довести его до современной версии Python, но я уверен, что другие работали над собственными форками намного дольше, чем я! На этом этапе нам может быть лучше выбрать чей-то твердый форк и провести там нашу вечеринку SimpleCV.
Но кто знает ?? Может быть, @andrewbaldock @bremac @demaagdk @doclrogers @idfarmer @mechiris @oostendo @struckmannk или @xamox увидят одну из этих тем и решат обратиться к людям за помощью! Поддержание библиотеки, особенно такой существенной, - это большая работа.
Привет @mUtterberg ... моя вилка попыталась переместить SimpleCV с Python2 на Python3. Я исправил большинство проблем. Основным препятствием на данный момент является внутренняя обработка данных. SimpleCV по умолчанию использует 3-канальный (RGB) iplimage внутри, но iplimage устарел. Вместо этого рекомендуется использовать numpy.ndarray, но я не нашел времени на перенос какого-либо кода. Я готов помочь, если у вас (или у кого-то еще) есть вопросы.
Привет @mUtterberg ... моя вилка попыталась переместить SimpleCV с Python2 на Python3. Я исправил большинство проблем. Основным препятствием на данный момент является внутренняя обработка данных. SimpleCV по умолчанию использует 3-канальный (RGB) iplimage внутри, но iplimage устарел. Вместо этого рекомендуется использовать numpy.ndarray, но я не нашел времени на перенос какого-либо кода. Я готов помочь, если у вас (или у кого-то еще) есть вопросы.
Привет @mUtterberg, я просто хочу использовать SimpleCV, чтобы найти круг, ты что, вилка, я могу это сделать? Или все еще не готово? Спасибо
+1
Python 2 официально закрыт. Есть ли планы сделать совместимым с simplecv python 3? Это крутой и простой для понимания пакет. Спасибо.
@jairoareyes В итоге я использовал сам OpenCV, поскольку недавние выпуски api python намного более интуитивно понятны и более или менее исключают необходимость в стороннем api.
Самый полезный комментарий
Привет @mUtterberg ... моя вилка попыталась переместить SimpleCV с Python2 на Python3. Я исправил большинство проблем. Основным препятствием на данный момент является внутренняя обработка данных. SimpleCV по умолчанию использует 3-канальный (RGB) iplimage внутри, но iplimage устарел. Вместо этого рекомендуется использовать numpy.ndarray, но я не нашел времени на перенос какого-либо кода. Я готов помочь, если у вас (или у кого-то еще) есть вопросы.