使用asyncio.sleep()触发RuntimeWarning及tracemalloc命令问题求助
问题解决指南
1. 修复asyncio.sleep协程未等待的错误
你使用的asyncio.sleep()是协程函数,不能直接像普通函数那样调用,以下两种方案任选其一:
方案一:改用同步的time.sleep(简单直接,适合无异步需求的场景)
替换原代码的导入和打印函数:
# 替换原asyncio导入为time import time from keyboard import wait # ... 用户名验证部分代码不变 ... def dramatic_print(string, time=0.25): for letter in string: print(f"{letter}", end="", flush=True) # 强制刷新输出,避免字符缓冲 time.sleep(time)
方案二:正确使用asyncio异步机制(保留asyncio.sleep的场景)
需要将打印函数改为异步函数,并通过事件循环启动:
from asyncio import sleep, run from keyboard import wait # ... 用户名验证部分代码不变 ... async def dramatic_print(string, time=0.25): for letter in string: print(f"{letter}", end="", flush=True) await sleep(time) # 用await等待协程执行 # 调用异步函数时必须启动事件循环 run(dramatic_print("欢迎来到星际冒险游戏..."))
2. 修复python3命令未识别的问题
Windows系统中,Python的默认调用命令是python而非python3,执行tracemalloc的正确命令是:
python -X tracemalloc
如果仍然报错,检查Python安装时是否勾选了Add Python to PATH选项,未勾选的话需要手动将Python安装路径添加到系统环境变量。
内容的提问来源于stack exchange,提问作者Ashwin
相关产品推荐
相关产品推荐

