python-greenlet / greenlet

Lightweight in-process concurrent programming
Other
1.63k stars 247 forks source link

[BUG] No module named greenlet._greenlet for 3rd party libraries when using python 3.11.5 on Docker #373

Closed mathew-jithin closed 11 months ago

mathew-jithin commented 11 months ago

Facing this issue in playwright because of greenlet. Hope someone will please have a check.

I am using the official python docker image for Python 3.11.5

Ref: https://github.com/microsoft/playwright-python/issues/2098

jamadden commented 11 months ago

Works fine.

$ docker run --rm -ti python:3.11.5 bash
Unable to find image 'python:3.11.5' locally
3.11.5: Pulling from library/python
...
Digest: sha256:2e376990a11f1c1e03796d08db0e99c36eadb4bb6491372b227f1e53c3482914
Status: Downloaded newer image for python:3.11.5
root@062ef570de74:/# pip install greenlet
Collecting greenlet
  Obtaining dependency information for greenlet from https://files.pythonhosted.org/packages/c9/8e/8ff2d2b6527130833d94dba5e83bf8e5f032234e9670bb391c4638858b13/greenlet-3.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata
  Downloading greenlet-3.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (3.8 kB)
...
Installing collected packages: greenlet
Successfully installed greenlet-3.0.0
...
root@062ef570de74:/# python -c 'import greenlet; print(greenlet.getcurrent())'
<greenlet.greenlet object at 0xffff95acbc00 (otid=0xffff95d12370) current active started main>
python -c 'import greenlet; print(greenlet.getcurrent())'
<greenlet.greenlet object at 0xffff95acbc00 (otid=0xffff95d12370) current active started main>
root@062ef570de74:/# pip install 'greenlet<3'
Collecting greenlet<3
  ...
Installing collected packages: greenlet
  Attempting uninstall: greenlet
    Found existing installation: greenlet 3.0.0
    Uninstalling greenlet-3.0.0:
      Successfully uninstalled greenlet-3.0.0
Successfully installed greenlet-2.0.2
...
root@062ef570de74:/# python -c 'import greenlet; print(greenlet.getcurrent())'
<greenlet.greenlet object at 0xffffa163bc00 (otid=0xffffa1882460) current active started main>