Instale o ImageMagick para o Python Ubuntu 16.04

1

Atualizar

Talvez esta seja a causa?

>>> from ctypes import *
>>> cdll.LoadLibrary('libMagickWand-6.Q16.so.2')
...
OSError: /home/myuname/anaconda3/bin/../lib/libgomp.so.1: version 'GOMP_4.0' not found (required by /usr/lib/x86_64-linux-gnu/libMagickWand-6.Q16.so.2)

Não está claro como corrigir isso.

Usando o pacote python do python. Siga as instruções de instalação executando:

sudo apt install libmagickwand-dev imagemagick
pip install wand

Mas recebo o seguinte erro ao tentar importar Image:

>>> from wand.image import Image
...
    raise IOError('cannot find library; tried paths: ' + repr(tried_paths))
OSError: cannot find library; tried paths: ['libMagickWand-6.Q16.so.2', 'libMagickWand-6.Q16.so.2']

During handling of the above exception, another exception occurred:
...
ImportError: MagickWand shared library not found.
You probably had not installed ImageMagick library.
Try to install:
  apt-get install libmagickwand-dev

Não tenho certeza do que está acontecendo. A execução de ldconfig -p | grep -i wand me dá:

libMagickWand-6.Q16.so.2 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libMagickWand-6.Q16.so.2
libMagickWand-6.Q16.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libMagickWand-6.Q16.so

Também a execução de ctypes mostra a biblioteca:

>>> from ctypes.util import find_library
>>> find_library('MagickWand')
'libMagickWand-6.Q16.so.2'

Confirme que não é v7:

$ convert -version
Version: ImageMagick 6.8.9-9 Q16 x86_64 2017-05-26 http://www.imagemagick.org
    
por ksindi 16.07.2017 / 06:01

1 resposta

1

Instale o wand no Ubuntu 16.04 a partir dos repositórios padrão do Ubuntu.

sudo apt install python-wand libmagickwand-dev 

Crie uma imagem chamada mona-lisa.png em seu próprio diretório home para usar no seguinte código de exemplo do documentação da varinha .

from wand.image import Image
from wand.display import display

with Image(filename='mona-lisa.png') as img:
    print(img.size)
    for r in 1, 2, 3:
        with img.clone() as i:
            i.resize(int(i.width * r * 0.25), int(i.height * r * 0.25))
            i.rotate(90 * r)
            i.save(filename='mona-lisa-{0}.png'.format(r))
            display(i)

Se você estiver executando este código a partir do terminal, pressione Enter duas vezes após o final do código para executar o código. Esse código deve ser executado com êxito e abrir a imagem em uma janela separada e mostrar a saída do console. Feche todas as janelas de imagem que o código Python abriu clicando no X antes de sair do interpretador Python.

Eu tentei solucionar problemas na sua saída e obtive estes resultados:

>>> from ctypes import *
>>> cdll.LoadLibrary('libMagickWand-6.Q16.so.2')
<CDLL 'libMagickWand-6.Q16.so.2', handle 266d6a0 at 7fb271c966d0>

Não houve erros no meu computador, mas descobri o que causou esse erro no seu computador:

OSError: /home/myuname/anaconda3/bin/../lib/libgomp.so.1: version 'GOMP_4.0' not found (required by /usr/lib/x86_64-linux-gnu/libMagickWand-6.Q16.so.2)

O erro no seu computador é claramente causado pelo anaconda. O Anaconda é conhecido por causar uma grande confusão nos caminhos padrão de muitos módulos Python. Para corrigi-lo, você precisa informar os caminhos para os arquivos Python que foram instalados pelo apt.

Você pode usar links simbólicos para informar os caminhos para os arquivos Python que foram instalados pelo apt. Coloque os links simbólicos no próprio diretório lib/python/site-packages do conda que, para você, seria algo como: /home/ksindi/anaconda3/lib/python/site-packages se ksindi for seu nome de usuário.

Não, senhor, eu não gosto do anaconda por me fazer fazer todo esse trabalho extra para fazer o conda reconhecer os pacotes do Python que eu instalei com o apt.

    
por karel 16.07.2017 / 20:03