получите pdiffer, работающий в человечности

Я пытаюсь использовать pdiffer в человечности. Это - интерфейс Python к инструменту PerceptualDiff. https://pypi.python.org/pypi/pdiffer

Я установил pdiffer, использующий зернышко (после того, как установка зернышка)
Я установил cmake
Я установил freeimage (sudo склонный - получают установку libfreeimage-dev),
Я создал PerceptualDiff после чтения меня файл.

Насколько я знаю, все - установка (не было никаких ошибок). Под Домом/Документами у меня есть свои два изображения и папка, названная pdiff, который имеет скомпилированный perceptualdiff файл в нем.

Я использовал интерпретатор Python в окне терминала

от pdiffer импортируют PDiffer

pdiff = PDiffer(bin='/home/username/Documents/pdiff/perceptualdiff')
result = pdiff('image1.png', 'image2.png')

никакие ошибки до последней команды

Traceback (новый вызов в последний раз):

File "<stdin>", line 1, in <module>
TypeError: 'PDiffer' object is not callable

Это - первый раз, когда я попытался использовать интерфейс Python для модуля C. Если Вы могли бы сказать мне, что я делаю неправильно (или сообщите мне то, что другую информацию я должен включать), я ценил бы ее.

0
задан 5 October 2014 в 09:01

1 ответ

Документация испытывает недостаток в основном объяснении.

Позволяют нам взглянуть сначала на Вашу ошибку. Вы создаете экземпляр PDiffer класс и затем trie для вызова того экземпляра снова. Посмотрите этот очень упрощенный пример с той же ошибкой:

>>> class PDiffer:
...   def __init__(self, *args, **kwargs):
...     pass
... 
>>> pdiff = PDiffer(bin="/path/to/bin")
>>> pdiff("image1.png", "image2.png")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'PDiffer' object is not callable

Однако документация дает 2 опции использовать pdiff. Создайте экземпляр PDiff и дайте ему пользовательский путь к двоичному файлу или используйте функцию помощника pdiff. Предоставление им то же имя переменной и использование их в том же блоке кода просто очень сбивают с толку. Это или один ИЛИ другой.

я должен был посмотреть на источник для наблюдения то, что продолжается. Необходимо использовать pdiff метод PDiff класс вместо этого. Вторым примером является ярлык на этот метод с пользовательским двоичным путем.

, Таким образом, рабочий пример был бы:

from pdiffer import PDiffer
pdiff = PDiffer(bin='/home/username/Documents/pdiff/perceptualdiff')
result = pdiff.pdiff('image1.png', 'image2.png')
0
ответ дан 7 October 2019 в 00:22

Другие вопросы по тегам:

Похожие вопросы: