You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据用户输入的模块名称动态导入对应Python模块?

解决动态导入模块的问题

你遇到的核心问题是:import语句会把代码里的名称当作字面量模块名,不会解析变量的值。要实现根据用户输入动态导入对应模块,得用Python标准库的importlib模块来处理。

原问题代码

Account = input("Which account to use?: ")
if Account in acc.accounts:
    import Account as info  # 这里的Account会被当作模块名,而非变量存储的输入值

解决方案:使用importlib.import_module()

importlib.import_module()支持传入字符串形式的模块名,刚好适配动态导入的场景。修改后的代码如下:

import importlib

# 获取用户输入的账户名称
account_name = input("Which account to use?: ")

# 验证账户是否在合法列表内
if account_name in acc.accounts:
    # 动态导入对应模块并赋值给info变量
    info = importlib.import_module(account_name)

注意事项

  • 确保要导入的模块(比如Main.py或Spam.py)在Python的搜索路径中,最直接的方式是把它们和主脚本放在同一目录下。
  • 如果模块位于子目录中,需要传入完整的模块路径字符串,比如importlib.import_module("accounts.Main")(前提是子目录包含__init__.py文件)。

内容的提问来源于stack exchange,提问作者Scarlet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 00:10:46