模块 'qrcode' 没有属性 'make'

module 'qrcode' has no attribute 'make'

同时将 python 库 qrcode==6.1 与 django==3.1.2 集成。 我一直在尝试生成一个二维码,其中将包含我其他网站的 URL 链接。

Models.py

from django.db import models
import qrcode
from io import BytesIO
from django.core.files import File
from PIL import Image, ImageDraw

# Create your models here.

class Website(models.Model):
    name = models.CharField(max_length=200)
    qr_code = models.ImageField(upload_to='qr_codes', blank=True)

    def __str__(self):
        return str(self.name)
    
    def save(self, *args, **kwargs):
        qrcode_img = qrcode.make(self.name)
        canvas = Image.new('RGB', (290,290), 'white')
        draw = ImageDraw.Draw(canvas)
        canvas.paste(qrcode_img)
        fname = f'qr_code_{self.name}.png'
        buffer = BytesIO()
        canvas.save(buffer,'PNG')
        self.qr_code.save(fname, File(buffer), save=False)
        canvas.close()
        super().save(*args, **kwargs)

但它总是显示错误,指出模块 'qrcode' 不包含任何名为 'make()' 的属性。我想知道如何解决这个问题?

确保 models.py 所在的目录中没有任何名为 qrcode.py 的文件。

更多信息请查看https://github.com/lincolnloop/python-qrcode/issues/185

即使没有名为 'qrcode.py' 的文件也面临同样的问题 经过多次尝试终于找到解决方案,我的项目中安装了多个 Qrcode 只需卸载所有这些并只重新安装一个 'qrcode==6.1' 问题解决了...

pip unistall qrcode
pip install qrcode==6.1

@Abhigyan Jaiswal 的回复很到位,对我有用。

我试图将 qrcode 作为模块导入,而我的脚本也被命名为 qrcode.py。我只是重命名 qrcode.py 并且它起作用了。