在 64 位 Windows 的 Anaconda 4.8.3 中解码 Python 3.6 中的二维码?

Decode a qr-code in Python 3.6 in Anaconda 4.8.3 on 64 bit Windows?

如何在 Anaconda 4.8.3 a Windows 10 Pro N 64 位安装中解码 python 3.6 中的二维码?

大多数解决方案都需要 zbar 的 Pillow。但是,it appears zbar 仅适用于 32 位 windows 安装。此外,pip install zbarlight 产生:

ERROR: No matching distribution found for pyzbarlight

为了在 Windows 10 Pro N 64 位设备上尝试解码 Anaconda 4.8.3 中 python 3.6 中的二维码,我尝试了以下代码:

# Set up virtual environment in Anaconda
# conda create --name test36 python=3.6
# conda activate test36

# Install pip in the `test36` environment:
# E:/ProgramData/Anaconda3/envs/test36/Scripts/pip install pyzbar

# Source: https://anaconda.org/anaconda/pillow
# conda install -c anaconda pillow

from pyzbar.pyzbar import decode
from PIL import Image
decode(Image.open('elbow.png'))

产生错误:

OSError: [WinError 126] The specified module could not be found

Windows 错误信息

如果您在 Windows 上导入 pyzbar 时看到难看的 ImportError,您很可能需要 Visual Studio 2013 的 Visual C++ Redistributable Packages。如果使用 64 位[,请安装 vcredist_x64.exe =27=], vcredist_x86.exe 如果使用 32 位 Python.

请在此处访问阅读https://pypi.org/project/pyzbar/ or github homepage https://github.com/NaturalHistoryMuseum/pyzbar

我出于我的目的使用 Ubuntu,所以我无法检查它,但在家庭项目自述文件中,他们提供了有关丑陋的 ImportError 的信息。 如果他们谈论 64 位安装,那么 pyazbar 可以在 64 位上运行 Windows,请仔细检查 Visual Studio 2013 的 Visual C++ Redistributable Packages 是否已正确安装并且其他要求也已满足。

要回顾以下步骤,请在 64 Windows 10 Pro N 设备上的 Anaconda 提示符 4.8.3 中的 python 3.6 环境中解码二维码:

步骤假设python3.6环境已经安装并激活,可以完成。

conda create -n py36 python=3.6 anaconda
conda activate py36

抱枕安装

来源:https://anaconda.org/conda-forge/pillow

命令:

conda install -c conda-forge pillow

Pyzbar 安装

来源:

命令:

pip install pyzbar

然后来自来源:https://www.microsoft.com/en-US/download/details.aspx?id=40784 下载 vcredist_x64.exe(如果您有 64 位电脑,对于 x86,请选择 32 位版本)。 您甚至不必重新启动 anaconda 提示符,您可以使用名为 test.py 的 python 文件验证 pyzbar,内容为:

from pyzbar.pyzbar import decode
decode(Image.open('test.png'))

接下来在与 test.py 相同的文件夹中包含一个名为 test.png 的图像。 您可以在 python 3.6 环境中使用以下命令在 Anaconda 提示符下执行 test.py

python test.py

它不应该输出任何东西。