云引擎快速入门流程不通

问题:根据云引擎快速入门文档(https://leancloud.cn/docs/leanengine_quickstart.html#hash650783252)进行操作执行完pip install -Ur requirements.txt后,执行lean up报错。

错误信息:
[INFO] Current CLI tool version: 0.24.2
[INFO] Python runtime detected
[INFO] Retrieving app info ...
[INFO] Current app: xxx (xxxxxxxxxxxxxxxxx)
[INFO] Use [python wsgi.py] to start the project
[INFO] The project is running at: http://localhost:3000
Traceback (most recent call last):
File "wsgi.py", line 3, in
from gevent import monkey
ImportError: No module named gevent
[INFO] Cloud function debug console (if available) is accessible at: http://localhost:3001

系统环境:macOS Big Sur 11.1
python环境:python --version Python 3.9.1

测试发现如果先执行lean deploy,成功之后再执行lean up,就能跑起来,但是一访问http://localhost:3001/就会“Python”意外退出。

云引擎 Python 运行时(线上环境)目前尚未支持 Python 3.9,但在本地用 Python 3.9 跑 lean up 是可以的(不过需要把 requirements.txt 里的第一行 gevent 删掉,否则可能会遇到二进制兼容问题,详见下)。

ImportError: No module named gevent 这个报错很奇怪,因为模板项目的 requirements.txt 里是列出 gevent 的,而且 leancloud python sdk 自身也是依赖 gevent 的。
我有点怀疑是您的机器上 pip 和 python 不匹配,可能 python 是 3.9.1,但 pip 指向的并不是 python 3.9 而是其他版本的 python,您可以尝试运行下 pip --version 看看 pip 用的 python 是不是 3.9。或者您也可以试着运行下 python -m pip install -r requirements.txt,相比直接运行 pippython -m pip能保证运行的是当前 python 版本配套的pip

关于二进制兼容问题,主要是因为新版的 gevent 已经不支持 Python 2,然后旧版的 gevent 又不支持 Python 3 较新的一些版本。 我们后续会想办法处理一下这个问题。