2010-10-21 98 views
3

我有一个错误,当我使用pyqrcode。在Linux上的Python的qrcode

[[email protected] python2.6]# python 

Python 2.6.5 (r265:79063, Sep 7 2010, 07:31:57) 

[GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 

>>> import qrcode 

Traceback (most recent call last): 

    File "<stdin>", line 1, in <module> 

    File "/usr/local/lib/python2.6/site-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 

如何解决上述错误?

我从http://pyqrcode.sourceforge.net/

感谢, 马努

+1

你是如何在机器上安装pyqrcode? – tzot 2010-10-21 12:21:57

+0

我有同样的错误。我从源代码安装在Ubuntu 12.04 x86_64上。 – michael 2012-07-07 23:00:11

+0

来源显然有问题。 在qrcode包中没有任何内容,只有\ _ \ _ init \ _ \ _。py文件。 – Bakuriu 2012-08-17 10:40:32

回答

1

安装PIL-1.1.7JCC-2.14后指pyqrcode,我试图从源代码安装pyqrcode-0.2.1像你一样,也遇到了同样的错误: ImportError: No module named _qrcode。但后来我注意到_qrcode实际上是一个lib(_qrcode.so)。所以我试图把它添加到我的库路径上:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/python2.7/site-packages/qrcode-0.2.1-py2.7-linux-x86_64.egg/qrcode/ 

它的工作!嗯,事实上,不太,我遇到了另一个错误:

AttributeError: 'module' object has no attribute '_setExceptionTypes' 

所以我编辑了__init__.py文件

# probably located under a path like this for linux 
/usr/local/lib/python2.7/site-packages/qrcode-0.2.1-py2.7-linux-x86_64.egg/qrcode/ 

# or under a path like this for a Mac 
/Library/Python/2.7/site-packages/qrcode-0.2.1-py2.7-macosx-10.7-intel.egg/qrcode/ 

和注释掉第21行:

# _qrcode._setExceptionTypes(JavaError, InvalidArgsError) 

然后,我能够运行他们的简单示例:

#!/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') 

(来源:http://pyqrcode.sourceforge.net/

希望它能帮助,

+0

这个答案让我在Mac OS X 10.7.5上运行。请注意,我必须从源代码安装“pyqrcode”才能使其正常工作。 pip中的版本不适合我。可能是我机器上的某些东西,但如果遇到问题,则值得尝试两种方法。 – 2013-02-05 19:25:28