如何在命令行中运行Python的asyncio.run()?
解答
关于命令行运行方式与事件循环的确认
你的现有代码已正确启动事件循环
你使用的python3 -m main.main(更标准的写法是python3 -m main或直接python3 main.py)能正常运行,是因为代码里的if __name__ == '__main__': asyncio.run(main())分支被触发。asyncio.run()的核心作用就是创建并管理事件循环,会在传入的协程执行完成后自动关闭循环,所以这种方式肯定启动了事件循环,完全符合需求。为什么
python3 -m asyncio.run(main.main)无效python -m参数后需要跟模块名,而asyncio.run是asyncio模块下的一个函数,并非可独立运行的模块,因此该命令语法本身不成立,无法执行。其他命令行直接调用asyncio.run的方式
若不想依赖代码里的if __name__ == '__main__'分支,也可以用python3 -c直接在命令行执行代码:python3 -c "import asyncio; from main import main; asyncio.run(main())"这条命令会导入你的
main协程函数,通过asyncio.run()启动事件循环并执行协程。
内容的提问来源于stack exchange,提问作者Nick
相关产品推荐
相关产品推荐

