问题标签 [uvicorn]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2809 浏览

python - macOS - 找不到命令:uvicorn

我买了一个MAC,第一次使用这个系统,最近我也开始使用python。我有一个带有requirement.txt 文件的python 项目,我用PyCharm 打开该文件,其中还包含对uvicorn 的依赖。我安装了所有依赖项,但是当我尝试运行命令“uvicorn main:app”时,出现错误“找不到命令:uvicorn”。我试图寻找有关我的问题的指南,并且我读到它可能与 PATH 变量有关,并且按照这些指南中所写的内容,我尝试将 PATH 从我的主目录添加到 python。现在我的 python PATH 的内容如下:

/库/Python/3.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

我还读到我应该在 ~/.profile 文件中添加以下行,因为我的 MAC 是新的,所以我无法拥有它,所以我创建了这个文件并编写了下面的行:

导出 PATH=/usr/local/bin:/usr/local/sbin:$PATH

自从我尝试以来,什么都没有改变,所以我在问我应该怎么做。我还看到 pip3 在以下目录中安装了我的 requirements.txt 文件模块:

/usr/local/lib/python3.7/site-packages/

预先感谢您的帮助

0 投票
1 回答
10814 浏览

python - Gunicorn gevent workers vs Uvicorn ASGI

我目前正在 Django 中开发一项服务,该服务使用缓慢的外部 API(大约需要 10 秒才能得到响应),这意味着与我的服务器的连接保持打开状态等待外部 API 响应,并占用工作人员时间/资源。

我知道我可以使用 gunicorn 的线程或 gevent 工作者来添加并发性,但似乎无法掌握将 gunicorn 与 gevent 工作者和 uvicorn (或任何其他服务器)与 asgi 接口一起使用之间的确切区别。

使用其中一个的标准是什么?

Django 仍然不完全支持 async/await 视图。如果我只坚持 gevent 工人会更好吗?

0 投票
0 回答
566 浏览

fastapi - Uvicorn Detect --reload 主线程

我有一个简单的Uvicorn应用程序(使用FastAPI 构建)。在开发中,uvicorn server:app --reload. 该--reload参数表示将启动两个线程,一个与服务器有关,一个用于监视文件更改-当检测到文件更改时,重新启动与服务器的线程。

到目前为止没有什么特别的。这在 Flask、Django 和其他开发服务器中也很常见。问题是,我想pyngrok在启动开发服务器时打开一个隧道,并且我希望该隧道与这两个线程的父级一样长。也就是说,当检测到文件更改并重新启动开发服务器时,我希望重新启动隧道(因为ngrok这样会导致生成新的公共 URL 并中断现有连接)。

使用 Flask 和 Django,这相对容易实现。例如,使用 Flask 我只是简单地做os.environ.get("WERKZEUG_RUN_MAIN") != "true",使用 Django 我类似地评估RUN_MAIN环境变量,并且在任何一种情况下,我只在这些设置为时实例化隧道true。我找不到与 Uvicorn 一起使用的类似变量。任何人都可以在这里帮忙吗?

0 投票
2 回答
9118 浏览

gunicorn - 在 ubuntu 服务器上使用 uvicorn 运行 fastapi 应用程序

我正在处理将 FastAPI 上的项目沉积到远程 ubuntu 服务器。我将尝试通过命令从终端(使用 SSH 连接)运行项目

输出是

但我需要该项目在服务器的 IP 地址上可用。如果我尝试

我明白了

Where 66.226.247.55 - 来自谷歌云平台实例的外部 IP 地址 如何启动项目以便可以通过 IP 访问?

0 投票
4 回答
5682 浏览

python - 如何在 uvicorn 日志中为每个请求添加时间戳?

当我使用 uvicorn 运行我的 FastAPI 服务器时:

运行服务器后我得到的日志:

如何获取时间戳以及请求记录?喜欢:

0 投票
1 回答
2672 浏览

python - 使用 uvicorn 运行时,fastapi 找不到模型定义

我想在 fastapi 后端托管一个 pytorch 模型。当我用 python 运行代码时,它工作正常。depickled 模型可以使用定义的类。当使用 uvicorn 启动同一个文件时,它找不到类定义。

源代码如下所示:

当我使用它运行它时,python main.py它工作正常并且我得到了结果。当我运行它 uvicorn main:app并发送请求时,我收到以下错误:

两者都应该使用相同的 python 环境,因为我在环境中使用 uvicorn。

我希望有人知道我的设置或代码有什么问题。

更新堆栈跟踪:

0 投票
1 回答
458 浏览

python - “()”在python日志配置中做了什么

我在uvicorn源代码中看到了一个 python dict 日志配置。

在那里,他们将格式化程序定义为

另外,我们可以看到,他们定义了一个空记录器(不知道我应该怎么称呼它),

所以,这是我的问题,

  1. python 记录器的格式化程序部分"()"做什么?
  2. loggers部分 python logger""中的作用是什么?
0 投票
1 回答
192 浏览

python-3.x - 如何在表单参数中正确传递服务器 ip 地址?

我有一个用 fastapi 编写的应用程序,并使用 uvicorn 和 supervisor 部署在 ubuntu 服务器上。该命令uvicorn main:app --host 0.0.0.0 --port 8000启动应用程序。我可以访问该地址的应用程序

该应用程序有一个表单, (GET) 显示在

动作参数是 http://0.0.0.0:8000/image/uploadfile/但是在表单重定向之后,我没有去页面http://myserver_ip:8000/image/uploadfile/。如果我设置相同的结果action = http://localhost:8000/image/uploadfile/

当然,如果我直接设置动作变量 =http://myserver_ip:8000/image/uploadfile/一切都开始工作。但是没有办法在本地机器上运行这段代码。如何正确设置重定向?

0 投票
1 回答
16282 浏览

python - 如何在 FastAPI 中进行多处理

在服务 FastAPI 请求时,我有一个 CPU 密集型任务要对列表的每个元素执行。我想在多个 CPU 内核上进行此处理。

在 FastAPI 中执行此操作的正确方法是什么?我可以使用标准multiprocessing模块吗?到目前为止,我发现的所有教程/问题仅涵盖了 I/O 绑定任务,例如 Web 请求。

0 投票
2 回答
15626 浏览

python - 从 dockerfile 中的 uvicorn 命令和从 pythonfile 运行 fastapi 有区别吗?

我正在运行一个快速的 api,当我开发时,我的 app.py 文件中有以下代码

app.py 中的代码:

所以我正要CMD ["python3","app.py"]在我的 Dockerfile 中运行。

在 fastapi 示例中,他们做了这样的事情:

我想知道这两种方法之间有什么区别,因为我认为它们都可以工作。