我在 arm/v7 上使用 python 的线程库和 docker 时偶然发现了一个问题
错误如下
Fatal Python error: take_gil: PyCOND_WAIT(gil->cond) failed
Python runtime state: initialized
Current thread 0xb6840d84 (most recent call first):
<no Python frame>
Thread 0xb6f8245c (most recent call first):
File "/usr/local/lib/python3.10/threading.py", line 320 in wait
File "/usr/local/lib/python3.10/threading.py", line 607 in wait
File "/usr/local/lib/python3.10/threading.py", line 940 in start
File "//main.py", line 4 in <module>
当我直接在覆盆子上运行文件
main.py
时一切顺利;我有立即回报。
但是当通过docker运行它时,我得到了错误。 我尝试了 alpine 和 bullseye 版本的 python3.10 图像。
我的配置是树莓派
➜ ~ uname -a
Linux raspberrypi 5.10.103-v7l+ #1529 SMP Tue Mar 8 12:24:00 GMT 2022 armv7l GNU/Linux
➜ ~
DockerFile
FROM python:3.10-alpine
ENTRYPOINT ["python3", "main.py"]
COPY . .
CMD []
main.py
from threading import Thread
thread = Thread()
thread.start()
感谢您为我提供的所有帮助。