2016-06-08 7 views
1

Ich habe Probleme mit diesen drei zusammen. Ich glaube, Zauberstab erkennt die ImageMagick-Bibliotheken nicht, aber ich bin mir nicht sicher.Wand + ImageMagick + Anaconda: "'Zauberstab' hat kein Attribut 'Bild'"

Umwelt: Python 3.5.1 :: Anaconda 4.0.0 (64-Bit) Windows 7

Richten Sie Anweisungen, die ich nahm:

  1. installiert ImageMagick-6.9.4-Q8 (x64) mit der „C/C++ Entwicklung Header Optionen geprüft (installiert auf C:. \ Program Files \ ImageMagick-6.9.4-Q8)
  2. Sets MAGICK_HOME envar C: \ Programme \ ImageMagick-6.9.4- Q8
  3. Installierte Stab von pip

Mein Code:

import wand 
... 
with wand.image.Image(filename=source_file, resolution=(RESOLUTION, RESOLUTION)) as img: 
... 

Traceback:

Traceback (most recent call last): 
    File ".\pdf_convert.py", line 31, in <module> 
    ret = pdf2jpg(f, target_file, 2480) 
    File ".\pdf_convert.py", line 10, in pdf2jpg 
    with wand.image.Image(filename=source_file, resolution=(RESOLUTION, RESOLUTION)) as img: 
AttributeError: module 'wand' has no attribute 'image' 

Von allem, was ich gesehen habe, habe ich die richtigen Setup-Anweisungen gefolgt. Ich verwende die 64-Bit-Version von ImageMagick mit der 64-Bit-Version von Anaconda. Dies funktionierte mit mir bevor ich anfing Anaconda zu benutzen (bevor ich reguläre 32 Bit Python und 32 Bit ImageMagick benutzte.)

Gibt es etwas, das mir fehlt? Warum funktioniert der Zauberstab nicht richtig?

Antwort

1

Try this

from wand.image import Image 

with Image(filename=source_file, resolution=(RESOLUTION, RESOLUTION)) as img: 
    pass 

Gibt es etwas, was ich vermisst habe? Warum funktioniert der Zauberstab nicht richtig?

Ich glaube, es ist wie erwartet funktioniert, und der ursprüngliche Architekt nicht die Absicht hat Top-Paket-Level-Verknüpfungen (das heißt import wand) zu ermöglichen. Dies ist sinnvoll, da in IM mit integriert ist, und nicht versucht, Bibliotheken während setup.py auflösen.

Sie können das Paket so modifizieren, dass es die erwarteten Modulverknüpfungen enthält, indem Sie Folgendes hinzufügen.

# wand/__init__.py 
import api 
import color 
import compat 
import display 
import drawing 
import exceptions 
import font 
import image 
import resource 
import sequence 
import version 

Aber ich würde das nicht empfehlen. Die from package.module import Class ist viel sauberer.

+0

Ja, das ist es. Vielen Dank! Ich weiß nicht, warum es funktioniert hat, als ich es vorher missbrauchte. – DataDude

+0

Vielleicht hast du 'import wand.image' woanders benutzt? – emcconville

Verwandte Themen