启动Python Uvicorn/FastAPI应用时代码指定端口未生效
问题原因与解决办法
你遇到的问题核心原因很明确:当用uvicorn main:app命令启动时,Uvicorn是直接从main模块中加载app实例,不会执行if __name__ == "__main__"代码块——这个代码块只有在你用python main.py直接运行脚本的时候才会触发,所以里面设置的port=3001自然不会生效。
给你两种可行的解决方式:
- 直接运行脚本:放弃
uvicorn main:app命令,改用python main.py启动应用,这样代码里的uvicorn.run配置会被执行,端口3001就能正常生效。 - 保留命令行启动的话:要么每次手动添加
--port 3001参数;要么用环境变量指定端口,比如执行UVICORN_PORT=3001 uvicorn main:app,这样不用每次重复输入端口参数。
内容的提问来源于stack exchange,提问作者engineer-x
相关产品推荐
相关产品推荐

