Seite 1 von 1
ImportError: cannot import name _qrcode
Verfasst: Dienstag 19. Januar 2010, 21:10
von Bouni
Hallo allerseits,
Ich habe vor
qrcodes mittels python zu erstellen.
Dazu will ich
pyqrcode verwenden.
Nach Anlaufschwierigkeiten beim installieren des .egg's hab ich die paar Zeilen Code zum erstellen eine qrcodes von der Webseite kopiert:
qrcode.py:
Code: Alles auswählen
#!/usr/bin/env python
# coding: utf-8
#
# pyqrcode sample encoder
import sys, qrcode
e = qrcode.Encoder()
image = e.encode('woah!', version=15, mode=e.mode.BINARY, eclevel=e.eclevel.H)
image.save('out.png')
Beim ausführen des qrcode.py erhalte ich folgende Fehlermeldung:
Code: Alles auswählen
Traceback (most recent call last):
File "./qrcode.py", line 11, in <module>
import qrcode
File "/usr/local/lib/python2.6/dist-packages/qrcode-0.2.1-py2.6-linux-x86_64.egg/qrcode/__init__.py", line 6, in <module>
from qrcode import _qrcode
ImportError: cannot import name _qrcode
Ich habe google schon zum glühen gebracht, jedoch ohne Erfolg :/
Wäre Dankbar wenn mir einer nen wink mit dem Zaunpfahl geben könnte
Danke schon mal
Bouni
Verfasst: Dienstag 19. Januar 2010, 21:24
von Dav1d
Das test-Skript hat den selben Namen wie dsa Modul das du importieren willst, bennene mal dein Skript um, dann sollte es gehen
Verfasst: Dienstag 19. Januar 2010, 21:26
von Bouni
Hallo David,
Selber Fehler
Verfasst: Dienstag 19. Januar 2010, 21:31
von /me
Bouni hat geschrieben:Hallo David,
Selber Fehler
Wahrscheinlich liegt in dem Verzeichnis noch die qrcode.pyc herum. Lösch die mal.
Verfasst: Dienstag 19. Januar 2010, 22:49
von Leonidas
Nein, das Problem ist, dass qrcode wohl ein C-Modul hat, _qrcode welches eben kompiliert werden muss und dessen kompilierte Version auf zum betreffenden System passen muss.
Bouni sollte uns am besten sagen wie er denn das Paket installiert hat.
Verfasst: Mittwoch 20. Januar 2010, 09:02
von Bouni
Morgen,
@Leonidas:
Vorweg: Ich bin auf Arbeit und berichte jetzt grade aus dem Kopf, also weis ich nicht mehr jeden Schritt bis in Detail, aber ich versuchs mal
Als erstes habe ich versucht das fertige binary zu installieren:
http://pyqrcode.sourceforge.net/ -> Ubuntu Linux (8.10 amd64)
Hat nicht funktioniert, wie auf der Seite beschrieben weil anscheinend easy_install ein nicht bekannter Befehl war.
Danach habe ich versucht easy_install zu installieren was auch funktioniert hat. Aber das .egg wollte immer noch nicht. (evtl weil es für Ubuntu 8.10 ist, ich habe Ubuntu 9.10)
Als nächstes hab ich versucht die sourcen zu kompilieren
-> Fehler
Das Makefile:
Code: Alles auswählen
VERSION = 0.2.1
BASEPATH = decoder
LIBPATH = qrcode
SOURCEPATH = $(BASEPATH)/src
CLASSPATH = $(BASEPATH)/classes
LIBFILE = $(LIBPATH)/qrcode.jar
SRC = $(SOURCEPATH)/net/sourceforge/pyqrcode/Decoder.java
GENERATE=python -m jcc --jar $(LIBFILE) \
--python qrcode --version $(VERSION) --files 1 \
--exclude jp.sourceforge.qrcode.QRCodeDecoder \
--exclude jp.sourceforge.qrcode.reader.QRCodeDataBlockReader \
--exclude jp.sourceforge.qrcode.reader.QRCodeImageReader \
--exclude jp.sourceforge.qrcode.pattern.AlignmentPattern \
--exclude jp.sourceforge.qrcode.pattern.FinderPattern \
--exclude jp.sourceforge.qrcode.pattern.LogicalSeed \
--exclude jp.sourceforge.qrcode.geom.Axis \
--exclude jp.sourceforge.qrcode.geom.Line \
--exclude jp.sourceforge.qrcode.geom.Point \
--exclude jp.sourceforge.qrcode.geom.SamplingGrid \
--exclude jp.sourceforge.qrcode.util.ContentConverter \
--exclude jp.sourceforge.qrcode.util.DebugCanvas \
--exclude jp.sourceforge.qrcode.util.DebugCanvasAdapter \
--exclude jp.sourceforge.qrcode.util.QRCodeUtility \
--exclude jp.sourceforge.qrcode.exception.AlignmentPatternNotFoundException \
--exclude jp.sourceforge.qrcode.exception.InvalidDataBlockException \
--exclude jp.sourceforge.qrcode.exception.SymbolNotFoundException \
--exclude jp.sourceforge.qrcode.exception.DecodingFailedException \
--exclude jp.sourceforge.qrcode.exception.InvalidVersionException \
--exclude jp.sourceforge.qrcode.exception.VersionInformationException \
--exclude jp.sourceforge.qrcode.exception.FinderPatternNotFoundException \
--exclude jp.sourceforge.qrcode.exception.InvalidVersionInfoException \
--exclude jp.sourceforge.qrcode.ecc.BCH15_5 \
--exclude jp.sourceforge.qrcode.data.QRCodeImage \
--exclude jp.sourceforge.qrcode.data.QRCodeSymbol \
--exclude jp.sourceforge.reedsolomon.Galois \
--exclude jp.sourceforge.reedsolomon.RsDecode
lib: $(SRC)
python util/deps.py
javac -d $(CLASSPATH) -sourcepath $(SOURCEPATH) $<
jar cvf $(LIBFILE) -C $(CLASSPATH) .
$(GENERATE) --build
python encoder/setup.py build
egg: lib
python encoder/setup.py bdist_egg
install: lib
python encoder/setup.py install
all: lib
clean:
rm -rf $(CLASSPATH)/* $(LIBFILE) build dist qrcode.egg-info
Ich weis nur das er wegen der Zeile 9
gemeckert hat.
Nach ewigem Google'n hab ich rausgefunden das man seit Python XY -m jcc.__main__ angeben soll.
als das Makfile dahingehend geändert war hat er aber in der Zeile 43 $(GENERATE) --build gemeckert das ihm das __main__ nicht passt.
daraufhin hab ich das auskomentiert und er lief ohne Fehler bis zum Ende durch !?
und nun steh ich hier
Hoffe das hilft weiter den Fehler einzugrenzen!
Danke schon mal
Bouni
Verfasst: Mittwoch 20. Januar 2010, 14:43
von Leonidas
Uhh, das braucht Java und sowas wird wohl ziemlich hakelig. Besteht die Möglichkeit, dass du
PyQrCodec nutzt? Das nutzt zwar C und C++, ist aber vermutlich weitaus einfacher zu bauen.
Verfasst: Mittwoch 20. Januar 2010, 15:03
von Bouni
Hallo Leonidas,
Danke für die Antwort
Solange es funktioniert ist mir alles recht
Werd das heut Abend gleich mal testen!
DANKE
Verfasst: Donnerstag 21. Januar 2010, 21:12
von Bouni
Hallo allerseits
Ich hatte Erfolg
Hier eine kurze Beschreibung für alle suchenden:
(Ich arbeite mit Ubuntu 9.10)
Herunterladen und entpacken:
Code: Alles auswählen
mkdir ~/pyqrcodec
cd ~/pyqrcodec
wget http://www.pedemonte.eu/pyqr/files/PyQrcodec_Linux.tar.gz
tar -xzf PyQrcodec_Linux.tar.gz
cd PyQrCodec
Erforderliche Pakete installieren:
Code: Alles auswählen
apt-get install g++
apt-get install python-dev
apt-get install libcv1 libcvaux1 libcv-dev libcvaux-dev
Kompilieren und installieren:
Folgendes Testscript hat bei mir wunderbar funktioniert:
Code: Alles auswählen
#!/usr/bin/env python
# Einen QR Code erstellen
import PyQrcodec
size, image = PyQrcodec.encode('This is my first QR Code')
image.save('QR_Code.png')
# den gerade erstellten Code decodieren
status, string = PyQrcodec.decode('QR_Code.png')
print string
Danke noch einmal an alle für die Hilfe
Bouni