在 Termux 中安装 Uvicorn 时出现问题,Android

Problem installing Uvicorn in Termux, Android

我正在尝试在 Termux 中安装 运行 FastAPI。我成功安装了 FastAPI。 但是当我尝试使用 pip install "uvicorn[standard]" 安装 uvicorn 时,我收到了这个错误。我无法在此处粘贴错误,因为 Whosebug 将其识别为垃圾邮件,here is a link

不过,我用pip install uvicorn安装成功了。 但是当我尝试 uvicorn main:app --reload command 时,我得到了这个错误

INFO:     Will watch for changes in these directories: ['/data/data/com.termux/files/home/project/fapi']
INFO:     Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [11709] using watchgod
Traceback (most recent call last):
  File "/data/data/com.termux/files/home/project/fapi/main.py", line 15, in <module>
    uvicorn.run("main:app", host="0.0.0.0", port=8000, reload=True, access_log=False)
  File "/data/data/com.termux/files/home/project/fapi/env/lib/python3.10/site-packages/uvicorn/main.py", line 442, in run
    ChangeReload(config, target=server.run, sockets=[sock]).run()
  File "/data/data/com.termux/files/home/project/fapi/env/lib/python3.10/site-packages/uvicorn/supervisors/basereload.py", line 43, in run
    self.startup()
  File "/data/data/com.termux/files/home/project/fapi/env/lib/python3.10/site-packages/uvicorn/supervisors/basereload.py", line 64, in startup
    self.process.start()
  File "/data/data/com.termux/files/usr/lib/python3.10/multiprocessing/process.py", line 121, in start
    self._popen = self._Popen(self)
  File "/data/data/com.termux/files/usr/lib/python3.10/multiprocessing/context.py", line 284, in _Popen
    return Popen(process_obj)
  File "/data/data/com.termux/files/usr/lib/python3.10/multiprocessing/popen_spawn_posix.py", line 32, in __init__
    super().__init__(process_obj)
  File "/data/data/com.termux/files/usr/lib/python3.10/multiprocessing/popen_fork.py", line 19, in __init__
    self._launch(process_obj)
  File "/data/data/com.termux/files/usr/lib/python3.10/multiprocessing/popen_spawn_posix.py", line 39, in _launch
    from . import resource_tracker
  File "/data/data/com.termux/files/usr/lib/python3.10/multiprocessing/resource_tracker.py", line 38, in <module>
    import _posixshmem
ModuleNotFoundError: No module named '_posixshmem'

没有 --reload 服务器 运行s,但正如预期的那样,如果代码更改,它不会重新加载。

我用 hypercorn 试过同样的方法,但没用。似乎 uvicorn 和 hypercorn 无法在 Termux 中正确安装。谁能找到另一种在 Termux 中通过热重载 运行ning fastapi 的方法。

抱歉我的英语不好,我的母语不是英语。如果我的问题不符合准则,也很抱歉,这是我的第一个问题。

四个月后,我再次尝试,成功了。 那时,我在 Uvicorn github 呼吸系统中发布了一个问题,虽然没有解决方案,但看起来他们已经解决了。 顺便说一句,Uvicorn 在我的 android.

中使用 StatReloader 而不是 WatchGodReloader