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

Python跨脚本共享变量使用config模块报AttributeError如何解决

问题原因

你遇到的AttributeError本质是:直接运行Account.py时,Loginregister.py中给config.x赋值的逻辑从未被执行,导入的config模块中自然不存在x属性。如果两个脚本是分开独立启动的,内存中的变量本身就无法跨进程共享,也是报错的常见原因。

可落地解决方案

方案1:同进程内共享变量(适合两个脚本在同一个进程中执行)

  • 首先在项目根目录新建空的config.py文件,优先导入本地自定义配置模块,避免和Python标准库模块冲突
  • 调整执行逻辑,把登录逻辑作为入口,先完成变量赋值再调用Account中的逻辑:
    修改后的Loginregister.py:
    import config
    import Account
    
    # 原有获取用户名的逻辑
    userName = "用户输入的用户名" # 替换为你实际获取userName的代码
    config.x = userName
    # 调用Account的逻辑
    Account.print_user()
    
    修改后的Account.py:
    import config
    def print_user():
        print(config.x)
    
  • 直接运行Loginregister.py即可正常输出用户名。

方案2:跨进程独立运行用文件持久化(适合两个脚本分开启动的场景)

如果你的两个脚本是分别独立运行的,内存变量无法跨进程共享,可以用临时文件存储用户名:

  • Loginregister.py写入逻辑:
    # 原有获取用户名的逻辑
    userName = "用户输入的用户名"
    with open("temp_user.txt", "w", encoding="utf-8") as f:
        f.write(userName)
    
  • Account.py读取逻辑:
    with open("temp_user.txt", "r", encoding="utf-8") as f:
        userName = f.read()
    print(userName)
    

方案3:用内置shelve模块共享(无需额外依赖,支持多变量共享)

  • Loginregister.py写入:
    import shelve
    userName = "用户输入的用户名"
    with shelve.open("share_db") as db:
        db["user_name"] = userName
    
  • Account.py读取:
    import shelve
    with shelve.open("share_db") as db:
        print(db["user_name"])
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:45:02