【问题标题】:Import variables from a config File从配置文件导入变量
【发布时间】:2023-03-06 19:02:01
【问题描述】:

我有一个包含多个文件的脚本和一个将所有变量存储在一个 Python 文件中的配置文件。

文件夹结构:

配置文件:

如果我尝试运行调用导入的head 函数的主文件,则会弹出一个错误,提示无法导入配置。

进口:

【问题讨论】:

  • 请澄清:您如何运行主文件? head函数在哪个文件中?是否有关于“无法导入”错误的详细警告?
  • 我正在运行主文件,弹出此错误 import * only allowed at module level
  • 似乎有意禁止函数内的import *。请查看stackoverflow.com/questions/3571514/…。

标签: python import


【解决方案1】:

您的 Functions 文件夹有一个 __init__.py 文件。如果您的应用从 Main.py 执行(即如果 Main.py 满足 __name__ == "__main__"),那么无论您在应用中的哪个位置,您都可以像这样导入配置:

from Functions.Config import *

编辑:

但是,不建议将from module import * 用于本地导入。您可以为导入指定别名并调用 name.variable 而不是直接调用 name。 示例:

def head():
    # import packages
    import Function.Config as conf
    print(conf.more_200)
head()
>>> 50

【讨论】:

    【解决方案2】:

    你的语法错误。

    应该是from Config import * 而不是import .Config import *

    【讨论】:

    • 你好,这个错误弹出导入 * 只允许在模块级别
    • 那是因为你把所有的导入都放在了一个函数中,这会触发一个SyntaxWarning 警告。为防止这种情况,请将所有导入放在 python 文件的顶部而不是函数中。
    • 这两个代码在语法上都是有效的。它仅取决于它是否在包内以使用相对导入。参考:realpython.com/absolute-vs-relative-python-imports/….
    • 但是如果你不想那样做也没关系。警告不会阻止程序执行。
    猜你喜欢
    • 1970-01-01
    • 2016-09-14
    • 2012-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多