在集成python库qrcode==6.1和django==3.1.2时。我一直在尝试生成一个二维码,其中包含我其他网站的URL链接。
型号.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,只重新安装一个"qrcode==6.1",问题就解决了。。。
@Abhigyan Jaiswal的回应很到位,对我来说确实有效。
我试图将qrcode
作为一个模块导入,而我的脚本也被命名为qrcode.py
。我只是简单地将qrcode.py
重命名为qrcodegen.py
,它就起了作用。
pip uninstall qrcode
pip install qrcode==6.1