最新的commit出现pyzbar问题
在安装的时候,确认已经安装了pyzbar包 #6 27.51 Requirement already satisfied: cachetools in /usr/local/lib/python3.10/site-packages (from efb-wechat-comwechat-slave==1.0.6) (4.2.2) #6 27.51 Requirement already satisfied: requests in /usr/local/lib/python3.10/site-packages (from efb-wechat-comwechat-slave==1.0.6) (2.32.3) #6 27.51 Requirement already satisfied: qrcode in /usr/local/lib/python3.10/site-packages (from efb-wechat-comwechat-slave==1.0.6) (8.0) #6 27.51 Requirement already satisfied: pyzbar in /usr/local/lib/python3.10/site-packages (from efb-wechat-comwechat-slave==1.0.6) (0.1.9) #6 27.51 Requirement already satisfied: python-magic in /usr/local/lib/python3.10/site-packages (from efb-wechat-comwechat-slave==1.0.6) (0.4.27)
但是在运行的时候出现了如下错误日志。
Traceback (most recent call last):
File "/usr/local/bin/ehforwarderbot", line 8, in
zbar 需要安装外部依赖,我在 Dockerfile 里面添加了,你可以参考下,调整你的安装方式
安装这个依赖是否可以到setup.py去添加呢?看着不太可以。
安装这个依赖是否可以到setup.py去添加呢?看着不太可以。
看着setup.py中已经有了 试一下卸载重装会安装依赖不
我在本地apk add zbar libzbar zbar-dev之后,依然出现类似错误
/ # apk add libzbar zbar zbar-dev
OK: 1005 MiB in 389 packages
/ # ehforwarderbot Traceback (most recent call last): File "/usr/local/bin/ehforwarderbot", line 8, in <module> sys.exit(main()) File "/usr/local/lib/python3.10/site-packages/ehforwarderbot/__main__.py", line 330, in main conf = config.load_config() File "/usr/local/lib/python3.10/site-packages/ehforwarderbot/config.py", line 59, in load_config channel = utils.locate_module(i, 'slave') File "/usr/local/lib/python3.10/site-packages/ehforwarderbot/utils.py", line 145, in locate_module return i.load() File "/usr/local/lib/python3.10/site-packages/pkg_resources/__init__.py", line 2471, in load return self.resolve() File "/usr/local/lib/python3.10/site-packages/pkg_resources/__init__.py", line 2477, in resolve module = __import__(self.module_name, fromlist=['__name__'], level=0) File "/usr/local/lib/python3.10/site-packages/efb_wechat_comwechat_slave/__init__.py", line 1, in <module> from .ComWechat import ComWeChatChannel File "/usr/local/lib/python3.10/site-packages/efb_wechat_comwechat_slave/ComWechat.py", line 7, in <module> from pyzbar.pyzbar import decode as pyzbar_decode File "/usr/local/lib/python3.10/site-packages/pyzbar/pyzbar.py", line 7, in <module> from .wrapper import ( File "/usr/local/lib/python3.10/site-packages/pyzbar/wrapper.py", line 151, in <module> zbar_version = zbar_function( File "/usr/local/lib/python3.10/site-packages/pyzbar/wrapper.py", line 148, in zbar_function return prototype((fname, load_libzbar())) File "/usr/local/lib/python3.10/site-packages/pyzbar/wrapper.py", line 127, in load_libzbar libzbar, dependencies = zbar_library.load() File "/usr/local/lib/python3.10/site-packages/pyzbar/zbar_library.py", line 65, in load raise ImportError('Unable to find zbar shared library') ImportError: Unable to find zbar shared library
/ # ls /usr/lib/libzbar* /usr/lib/libzbar.so /usr/lib/libzbar.so.0.3.0 /usr/lib/libzbargtk.so.0 /usr/lib/libzbarqt.so /usr/lib/libzbarqt.so.0.1.2 /usr/lib/libzbar.so.0 /usr/lib/libzbargtk.so /usr/lib/libzbargtk.so.0.0.2 /usr/lib/libzbarqt.so.0 并且能确定,确实安装了这些
发现不需要zbar-dev,只需要zbar就可以了。体积可以缩减很多
@jiz4oh 如果是需要用alpine来构建,是需要修复这个问题的
@phoenixxie0 你试试使用 https://github.com/jiz4oh/ehforwarderbot/blob/master/Dockerfile 也是使用 alphine 构建的,没有遇到这个问题
这看起来是python3.10在alpine下存在的某个问题,你发送的连接,更换成3.100一样复现这个情况,3.11版本似乎没有此问题。
那这种就无能为力了😂
@phoenixxie0 找到一个比较 hacky 的方法
sed -i "s|path = find_library('zbar')|path = '/usr/lib/libzbar.so.0' # find_library('zbar')|" \
/usr/local/lib/python3.11/site-packages/pyzbar/zbar_library.py
我今天优化镜像体积的时候也遇到了这个 bug
@jiz4oh 是的,你的修改方案看起来比我的更加简便;当然,也相对hard了一些,但有效。