直接:
23.10.19 20:20:23 (+0100) main File "server.py", line 1, in <module>
23.10.19 20:20:23 (+0100) main from gadget import Gadget
23.10.19 20:20:23 (+0100) main File "/usr/src/app/src/gadget.py", line 3, in <module>
23.10.19 20:20:23 (+0100) main from agt import AlexaGadget
23.10.19 20:20:23 (+0100) main File "/agt/src/agt/__init__.py", line 29, in <module>
23.10.19 20:20:23 (+0100) main from agt.alexa_gadget import AlexaGadget
23.10.19 20:20:23 (+0100) main File "/agt/src/agt/alexa_gadget.py", line 24, in <module>
23.10.19 20:20:23 (+0100) main from agt.bluetooth import BluetoothAdapter
23.10.19 20:20:23 (+0100) main File "/agt/src/agt/bluetooth.py", line 21, in <module>
23.10.19 20:20:23 (+0100) main from gi.repository import GObject
23.10.19 20:20:23 (+0100) main File "/usr/lib/python3/dist-packages/gi/__init__.py", line 42, in <module>
23.10.19 20:20:23 (+0100) main from . import _gi
23.10.19 20:20:23 (+0100) main ImportError: cannot import name '_gi'
我一直在玩使用python3-gi(dependencies it installs can be found here)的Alexa小工具工具包,并且遇到了麻烦。
对于上下文,我在Pi Zero W上使用Balena的Raspbian和Python Docker镜像。由于无法加载_gi模块,启动时似乎完全失败。
我尝试了各种Python版本(3.4、3.5、3.6、3.7),但无济于事,还尝试手动安装各种依赖项,通过python -m pip
使用pip来确保使用了正确的pip,等等。运气。由于AGT库中的编码问题,Python 2.7完全不起作用,但是看起来无论如何它仍有望与3.x一起使用。
答案 0 :(得分:1)
解决方案!
事实证明,用于GI的.so模块只需要将“ 34m”重命名为“ 36m”,所以我将它们添加到了Dockerfile中,现在可以正常运行了
RUN sudo mv /usr/lib/python3/dist-packages/gi/_gi.cpython-34m-arm-linux-gnueabihf.so /usr/lib/python3/dist-packages/gi/_gi.cpython-36m-arm-linux-gnueabihf.so
RUN sudo mv /usr/lib/python3/dist-packages/gi/_gi_cairo.cpython-34m-arm-linux-gnueabihf.so /usr/lib/python3/dist-packages/gi/_gi_cairo.cpython-36m-arm-linux-gnueabihf.so