Windows7 Python3.8.5,pyinstaller跟reportlab也尝试更新过。
下面是执行程序运行时提示的报错:
Traceback (most recent call last):
File"条形码贴纸生成-py”,1ine3,in<module>
File "PyInstaller\loader\pyimod03_importers.py",line 531,in exec_module
File "reportlab\graphics\barcode\_init__.py",line 76,in <module>
File "reportlab\graphics\barcode\_init_.py",line 42,in reset
File "PyInstaller\loader\pyimod03_importers.py",line 531.in exec_module
File "reportlabgraphics\barcode\widgets.py",line 166,in <module>
File "reportlab\graphics\barcode\widgets.py",line 95,in BCW
File "<string>",line 1,in <module>
ModuleNotFoundError:No module naned 'reportlab.graphics.barcode.code128'
[1156]Fai1 ed to execute script条形码贴纸生成
我自己发现问题是因为下面这句代码:
from reportlab.graphics.barcode import code128
可是直接调试代码是可以正常运行的,也确实能生成我需要的条码。
import code128.py
执行脚本也是可以正常运行,但是使用pyinstaller打包确打包失败,提示(太多提示了,就贴上最后一个):(另,我尝试过修改spec的hiddenimports把提示缺失的模块强制打包,然后通过打包spec也是下面的错误提示)
AttributeError: 'tuple' object has no attribute 'rpartition'
然后我找了所有代码,都没有出现.rpartition,救命- -!
最后我新建了一个简单的测试.py脚本(代码如下)也是同样的问题
from reportlab.graphics.barcode import code128
print("test")
请各位帮忙看看是什么问题导致的,感谢!
这样试试,最前面加一句
import reportlab
pyinstaller 的老问题了。
暂时没有实际解决到这个问题,使用一个替代方法:
使用code128这个模块替代,安装code128模块
import code128
width = 100
height = 2
barcode128 = code128.image(barcode_value,width,height)
##barcode128.save("123.png")
复杂一点慢一点,成一个图片再操作我需要的其他内容,但是好歹可以打包成一个能运行的执行文件了,先用着了...
pyinstaller 建议使用可视化打包工具打包,能自动将匿名导入包导入进去,如未导入,还可手动添加
详情参考下面帖子,如有问题,回复我会私聊帖主都可以
有帮助请点一下右上角的采纳,谢谢