TL; DR:我需要一种方法来解码使用(最好是纯粹的)Python的图像文件中的QR码.
我有一个带有QR码的jpg文件,我想用Python解码.我找到了几个声称这样做的图书馆:
PyQRCode(这里的网站)据说可以通过简单地提供这样的路径来解码图像中的qr代码:
import sys, qrcode
d = qrcode.Decoder()
if d.decode('out.png'):
print 'result: ' + d.result
else:
print 'error: ' + d.error
Run Code Online (Sandbox Code Playgroud)
所以我只是使用它安装它sudo pip install pyqrcode.然而,我对上面的示例代码感到奇怪的是,它只导入qrcode(而不是导入pyqrcode)因为我认为qrcode引用这个只能生成 qr代码图像的库,这让我很困惑.所以,我想上面两个密码pyqrcode和qrcode,但双方未能在第二条线的说法AttributeError: 'module' object has no attribute 'Decoder'.此外,该网站是指Ubuntu 8.10(超过6年前推出),我找不到它的公共(git或其他)存储库来检查最新的提交.所以我转到了下一个图书馆:
ZBar(这里的网站)声称是,"an open source software suite for reading bar codes from various sources, such as image files." …
我想在Heroku上使用Python的ZBar.在常规的Ubuntu 14.04服务器上,我可以运行
sudo apt-get install python-qrtools
Run Code Online (Sandbox Code Playgroud)
- 要么 -
sudo apt-get install zbar-tools
sudo apt-get install libzbar-dev
sudo apt-get install python-zbar
Run Code Online (Sandbox Code Playgroud)
在第一个或最后三个之后,我可以用import zbarPython 做.所以使用heroku-buildpack-apt(与heroku-buildpack-multi结合使用)我尝试了两种选择.在这两种情况下,它似乎正确安装所有内容而没有错误(请参阅下面的安装日志),但在python命令行上尝试它总是产生:
>>> import zbar
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named zbar
Run Code Online (Sandbox Code Playgroud)
看到Heroku日志(下面)将Linux发行版列为Ubuntu Trusty(= 14.04)我不明白为什么它在我自己的14.04安装上工作,但不适用于Heroku.
有谁知道为什么这不起作用以及如何在Heroku上安装所需的软件包?欢迎所有提示!
Heroku在尝试安装时安装日志python-qrtools:
remote: =====> Downloading Buildpack: https://github.com/ddollar/heroku-buildpack-apt
remote: =====> Detected Framework: Apt
remote: -----> Updating apt caches
remote: Ign http://archive.ubuntu.com trusty InRelease …Run Code Online (Sandbox Code Playgroud)