python3 实现的二维码生成器,from PIL import Image,ImageDraw问题的解决

qrcode 库的使用

目前python3.x应用的较多,但是python2、python3之间总是容易出现依赖包版本不兼容等的问题导致程序无法运行。
在使用qrcode库制作二维码生成器的时候,就遇到了这样的问题,慢慢说来
首先展示一下做出来的二维码生成器是什么样子
python3 实现的二维码生成器,from PIL import Image,ImageDraw问题的解决_第1张图片
其实生成二维码的指令很简单,我这里多加了一个界面来实现就更加人性化。
在使用qrcode库之前首先要安装这个库,以及这个库的依赖库
在cmd里,直接执行三步,安装所需要的库

pip install qrcode
pip install image
pip install pillow

只要网络畅通都能安装成功
如果网络不够畅通建议更换下载源
下面放ubuntu和win10 更换下载源的方法
ubuntu:https://blog.csdn.net/weixin_44893585/article/details/89885121
win10:https://jingyan.baidu.com/article/3d69c55127775af0cf02d79e.html
还有这个也是win10的
https://blog.csdn.net/qq_15969343/article/details/79057042

成功安装库之后,代码如下

import qrcode
import tkinter as tk
from PIL import Image,ImageTk
class MY_QRCODE():
    def __init__(self,name):
        self.name = name

    def set_init_tk(self):
        self.name.title("网页生成二维码")
        self.name.geometry("400x450+300+100")

        self.urlin= tk.StringVar()
        self.url=tk.Entry(self.name,width = 50,textvariable = self.urlin)
        self.url.pack(pady=10)
        self.urlin.set("在此输入网站url")

        self.pathout = tk.StringVar()
        self.savepath = tk.Entry(self.name,width = 50,textvariable = self.pathout)
        self.savepath.pack(pady=10)
        self.pathout.set("在此输入要保存二维码的文件名")
        self.getButton = tk.Button(self.name,width = 10,height = 1,bg='pink',text="获取二维码",command= self.getQrcode)
        self.getButton.pack(pady=10)

        self.frame = tk.Label(self.name)
        self.frame.pack(pady=10)

    def getQrcode(self):  //生成二维码
        qr = qrcode.QRCode(
            version=2,
            error_correction=qrcode.constants.ERROR_CORRECT_L,
            box_size=10,
            border=1
        )
        qr.add_data(self.urlin.get())
        qr.make(fit = True)
        img = qr.make_image()
        self.path = 'E:/empory/' + self.savepath.get()
        img.save(self.path)
        self.showQr()

    def showQr(self)://展示生成的二维码
        load = Image.open(self.path)
        render = ImageTk.PhotoImage(load)
        self.frame.config(image = render)
        self.frame.image=render


master = tk.Tk()
qrtk = MY_QRCODE(master)
qrtk.set_init_tk()
master.mainloop()

from PIL import Image,ImageDraw问题的解决

from PIL install Image总是报错
因为PIL库目前只更新到python2.x,故python3.x直接安装PIL库会找不到版本。但是python3.x有pillow库可以提供和PIL差不多的功能。

大家都认为pip install pillow就可以,但实际上不然。
我在pycharm的settings里面查看到,pillow是已经装好的,且重启试过之后仍然报错。
并且在cmd里面开启python3使用以下指令测试

import PIL
from PIL import Image

都是成功的,如下图
python3 实现的二维码生成器,from PIL import Image,ImageDraw问题的解决_第2张图片
后来终于参考这个链接成功解决
https://blog.csdn.net/qq_28392015/article/details/82809276
其实,在python3里面应该安装Pillow库,因此把之前的pillow 卸载,重新安装Pillow之后,导入到pycharm可用,程序才能正常运行

pip uninstall pillow
python -m pip install Pillow //成功解决

你可能感兴趣的:(python3,python3,tkinter,qrcode,Pillow,和Image使用)