【Python黑科技】利用barcode库生成条形码,解决ModuleNotFoundError: No module named ‘barcode.writer‘的报错(保姆级图文+实现代码)


欢迎关注 『Python黑科技』 系列,持续更新中
欢迎关注 『Python黑科技』 系列,持续更新中

实现效果

在这里插入图片描述


安装barcode库,解决报错ModuleNotFoundError: No module named ‘barcode.writer’

安装命令,我当时一直报错,装了下面两个,也不知道哪个用上了。

pip install barcode
pip install python-barcode

你会提示报错 ModuleNotFoundError: No module named 'barcode.writer'

报错解决方法

我看了网上全网没有找到,后来看库的文档,发现文档里只有到版本0.8的,然后就把我们安装的默认的1.4版本切换回去到0.8的版本

库文档地址
https://www.cnpython.com/pypi/pybarcode

在这里插入图片描述

  • 切换0.8.1版本后问题解决
    在这里插入图片描述
  • from barcode.writer import ImageWriter没有飘红报错
    在这里插入图片描述

实现思路

背景知识:条形码的格式

条形码有一定的格式,在库中设置格式可以帮你检查条形码内容是否符合对应的格式。

import barcode
print(barcode.PROVIDED_BARCODES) 	# 查看python-barcode支持的条形码格式
# ['code128', 'code39', 'ean', 'ean13', 'ean14', 'ean8', 'gs1', 'gtin', 'isbn', 'isbn10', 'isbn13', 'issn', 'itf', 'jan', 'pzn', 'upc', 'upca']

创建条形码对象,参数为支持的格式

  • 如果你不知道选用什么格式,我这里推荐Code39。
  • Code39是条形码的一种,也被称为3 of 9 code、USD-3或者LOGMARS,由于编制简单、能够对任意长度的数据进行编码、支持设备广泛等特性而被广泛采用。
your_barcode = barcode.get_barcode_class('code39')

在条形码对象中放入加密的内容

# 输入要加密的内容或是直接写死
barcode_message=input("请输入要加密为条形码的内容:")
# barcode_message="mzh20230705"

# 条形码对象中加入内容
your_barcode = your_barcode(barcode_message, writer=ImageWriter())

保存条形码为图片

# 保存条形码图片,并且返回路径
your_barcode.save("发现你走远了生成的条形码")#不需要加上.png的后缀 默认自动生成了
print("条形码图片保存完成")

# save函数有三个参数:save(filename,options=None,text=None)
# filename参数为保存文件名,不需要加扩展名,将根据writer设置自动添加扩展名,由函数返回文件全名。当前面构造函数使用默认writer时,保存为SVG文件,扩展名为.svg。
# options参数默认值为None,此时使用默认参数。如果需要修改设置,使用字典传入参数,例如:save("d:\\barcode",{'format':'JPEG'},text='12345679')。可用参数如下:
#     'module_width':默认值0.2,每个条码宽度,单位为毫米
#     'module_height':默认值15.0,条码高度,单位为毫米
#     'quiet_zone':默认值6.5,两端空白宽度,单位为毫米
#     'font_size':默认值10,文本字体大小,单位为磅
#     'text_distance':默认值5.0,文本和条码之间的距离,单位为毫米
#     'background':默认值'white',背景色
#     'foreground':默认值'black',前景色
#     'text':默认值'',显示文本,默认显示编码,也可以自行设定
#     'write_text':默认值True,是否显示文本,如果为True自动生成text的值,如果为False则不生成(如果此时手工设置了text的值,仍然会显示文本)。
#     'center_text':默认值True,是否居中显示文本
#     'format':默认值'PNG',保存文件格式,默认为PNG,也可以设为JPEG、BMP等,只在使用ImageWriter时有效。
#     'dpi':默认值300,图片分辨率,,只在使用ImageWriter时有效。


实现代码

# import barcode
# print(barcode.PROVIDED_BARCODES) 	# 查看python-barcode支持的条形码格式
# #['code128', 'code39', 'your_barcode', 'your_barcode13', 'your_barcode14', 'your_barcode8', 'gs1', 'gtin', 'isbn', 'isbn10', 'isbn13', 'issn', 'itf', 'jan', 'pzn', 'upc', 'upca']


import barcode
from barcode.writer import ImageWriter


# 创建条形码格式对象,参数为支持的格式
your_barcode = barcode.get_barcode_class('code128')

# 输入要加密的内容或是直接写死
# barcode_message=input("请输入要加密为条形码的内容:")
barcode_message="http://ra4ms.rajyj.com/"

# 条形码对象中加入内容
your_barcode = your_barcode(barcode_message, writer=ImageWriter())

# 保存条形码图片,并且返回路径
your_barcode.save("发现你走远了生成的条形码")#不需要加上.png的后缀 默认自动生成了your_barcode.save("发现你走远了生成的条形码")#不显示内容
print("条形码图片保存完成")

# save函数有三个参数:save(filename,options=None,text=None)
# filename参数为保存文件名,不需要加扩展名,将根据writer设置自动添加扩展名,由函数返回文件全名。当前面构造函数使用默认writer时,保存为SVG文件,扩展名为.svg。
# options参数默认值为None,此时使用默认参数。如果需要修改设置,使用字典传入参数,例如:save("d:\\barcode",{'format':'JPEG'},text='12345679')。可用参数如下:
#     'module_width':默认值0.2,每个条码宽度,单位为毫米
#     'module_height':默认值15.0,条码高度,单位为毫米
#     'quiet_zone':默认值6.5,两端空白宽度,单位为毫米
#     'font_size':默认值10,文本字体大小,单位为磅
#     'text_distance':默认值5.0,文本和条码之间的距离,单位为毫米
#     'background':默认值'white',背景色
#     'foreground':默认值'black',前景色
#     'text':默认值'',显示文本,默认显示编码,也可以自行设定
#     'write_text':默认值True,是否显示文本,如果为True自动生成text的值,如果为False则不生成(如果此时手工设置了text的值,仍然会显示文本)。
#     'center_text':默认值True,是否居中显示文本
#     'format':默认值'PNG',保存文件格式,默认为PNG,也可以设为JPEG、BMP等,只在使用ImageWriter时有效。
#     'dpi':默认值300,图片分辨率,,只在使用ImageWriter时有效。


总结

大家喜欢的话,给个👍,点个关注!给大家分享更多有趣好玩的Python黑科技!

版权声明:

发现你走远了@mzh原创作品,转载必须标注原文链接

Copyright 2022 mzh

Crated:2022-2-1

欢迎关注 『Python黑科技』 系列,持续更新中
欢迎关注 『Python黑科技』 系列,持续更新中
【Python黑科技】tkinter库实战7个小项目合集(保姆级图文+实现代码)
【Python黑科技】tkinter库实战制作一个计算器(保姆级图文+实现代码)
【Python黑科技】tkinter库实战制作一个记事本(保姆级图文+实现代码)
【Python黑科技】tkinter库实战用户的注册和登录(保姆级图文+实现代码)
【Python黑科技】tkinter库实战“2048”小游戏(保姆级图文+实现代码)
【Python黑科技】tkinter库实战“俄罗斯方块”小游戏(保姆级图文+实现代码)
【Python黑科技】tkinter库实战“贪吃蛇”小游戏(保姆级图文+实现代码)
【Python黑科技】tkinter库实战“连连看”小游戏(保姆级图文+实现代码)

【Python安装第三方库一行命令永久提高速度】
【使用PyInstaller打包exe】
【免登陆爬虫一键下载知乎文章图片(保姆级图文+实现代码)】
【孤独的程序员和AI机器人朋友聊天解闷(免费接口+保姆级图文+实现代码注释)】
【几行代码绘制gif动图(保姆级图文+实现代码)】
【几行代码实现网课定时循环截屏,保存重要知识点(保姆级图文+实现代码)】
【常用的user_agent 浏览器头爬虫模拟用户(保姆级图文+实现代码)】
【更多内容敬请期待】


  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发现你走远了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值