Windows系统中如何正确运行poker_ai.terminal.runner Python模块
报错原因
TypeError: 'module' object is not callable 报错的核心是poker_ai.terminal.runner属于Python模块对象,并非可直接调用的函数,将模块作为函数传参调用不符合语法规则。
方案1:直接在PowerShell/命令行运行(适配原生指令需求)
你最初给出的指令本身就是标准命令行调用格式,无需转换--参数、无需加括号,打开PowerShell或CMD进入项目根目录后直接执行即可:
poker_ai.terminal.runner --agent offline --pickle_dir ./research/blueprint_algo --strategy_path ./research/blueprint_algo/offline_strategy_285800.gz --debug_quick_start
如果执行提示找不到命令,添加Python的-m模块调用参数执行即可:
python -m poker_ai.terminal.runner --agent offline --pickle_dir ./research/blueprint_algo --strategy_path ./research/blueprint_algo/offline_strategy_285800.gz --debug_quick_start
方案2:在Python脚本/交互环境中导入调用
如果需要作为模块在Python代码内调用,按照以下步骤调整:
- 首先确认
poker_ai.terminal.runner模块下的入口函数名,此类命令行工具的入口通常为main函数 - 参数需按argparse规则传入,不要把参数拼接为单个字符串传入
示例代码:
import sys from poker_ai.terminal import runner # 按顺序拼接参数列表 sys.argv = [ "runner", "--agent", "offline", "--pickle_dir", "./research/blueprint_algo", "--strategy_path", "./research/blueprint_algo/offline_strategy_285800.gz", "--debug_quick_start" ] # 调用入口函数 runner.main()
如果实际入口函数名不是
main,可以打开poker_ai/terminal/runner.py源码文件,查找末尾执行的入口函数名替换即可。
内容的提问来源于stack exchange,提问作者Amir
相关产品推荐
相关产品推荐

