ImportError:无法在RPi零上使用python3-gi导入名称'_gi'

问题描述 投票:0回答:1

直接使用它:

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一起使用。

python python-3.x raspberry-pi alexa
1个回答
0
投票

解决方案!

事实证明,用于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
© www.soinside.com 2019 - 2024. All rights reserved.