python:在函数内部重新加载模块

python:在函数内部重新加载模块,python,reload,Python,Reload,我有一个python配置文件,可以在主脚本运行时更改,因此需要重新加载它 我在这篇文章中尝试了答案: 它一直工作,直到我将重新加载零件输入到函数,因此如果我这样做: import config from config import * def main(): reload(config) from config import * 我得到警告:“import*”只允许在模块级使用,脚本正在运行,但重新加载不起作用 我还尝试了“导入配置”而不是“从配置导入*”,但出现了一个异常

我有一个python配置文件,可以在主脚本运行时更改,因此需要重新加载它

我在这篇文章中尝试了答案:

它一直工作,直到我将重新加载零件输入到函数,因此如果我这样做:

import config
from config import *

def main():
    reload(config)
    from config import *
我得到警告:“import*”只允许在模块级使用,脚本正在运行,但重新加载不起作用


我还尝试了“导入配置”而不是“从配置导入*”,但出现了一个异常“UnboundLocalError:分配前引用的局部变量“config”

我建议您将配置存储在文件而不是模块中。请查看Python中的
ConfigParser
模块。据我所知,它也可以处理ini文件。

似乎是在函数中重新加载的一个选项,使用这样的模块作为配置文件不是一个好策略。在开发过程中,重新加载模块只是一种方便。您不应该在生产代码中这样做,因为重新加载过程很可能不会改变所有内容。使用正确的配置文件。另外,在普通脚本中最好避免“星型”导入:它们会将大量名称转储到命名空间中,从而无法区分本地名称和导入的名称,并可能导致名称冲突,特别是如果你从不止一个模块导入星星。这不是一个大的脚本,但我会记住这一点,谢谢
import config
from config import *

def main():
    reload(config)
    from config import *