Stéphane Wirtel <steph...@wirtel.be> added the comment: Could you share a pastebin? Thank you
> Le 25 oct. 2018 à 21:28, James Hewitt <rep...@bugs.python.org> a écrit : > > > New submission from James Hewitt <j...@caurinus.com>: > > Having 'import logging.config' in an if statement in a function causes a > namespace issue, despite the fact that the import is not reached. > > Example code: > > --- > #!/usr/bin/env python3 > > # Test weird import bug > > import logging > > > config = {} > config['log'] = {} > config['log']['log_type'] = 'file' > config['log']['log_file'] = './log' > config['log']['config'] = { 'version' : 1 } > > > def do_config_logging(): > if config['log']['log_type'] == 'from_config': > import logging.config > logging.config.dictConfig(config['log']['config']) > elif config['log']['log_type'] == 'file': > logging.basicConfig(filename=config['log']['log_file']) > logging.info("start logging") > > > if __name__ == "__main__": > do_config_logging() > > --- > > > This results in: > > Traceback (most recent call last): > File "./bug.py", line 25, in <module> > do_config_logging() > File "./bug.py", line 20, in do_config_logging > logging.basicConfig(filename=config['log']['log_file']) > UnboundLocalError: local variable 'logging' referenced before assignment > > > Notes: > > This was run on Ubuntu Linux 18.04 Intel 64-bit, Python version 3.6.6 > > The problem does not occur if the branch is actually taken, and it does not > occur if the 'if' statement is not in a function. It also does not occur if > 'logging.config' is imported as some other name, eg. 'configlogging'. > > virtualenv is installed (via the distribution package) but not in use in the > test case. > > ---------- > components: Library (Lib) > messages: 328470 > nosy: jhewitt > priority: normal > severity: normal > status: open > title: Unexecuted import in function causes UnboundLocalError > type: behavior > versions: Python 3.6 > > _______________________________________ > Python tracker <rep...@bugs.python.org> > <https://bugs.python.org/issue35069> > _______________________________________ > _______________________________________________ > New-bugs-announce mailing list > new-bugs-annou...@python.org > https://mail.python.org/mailman/listinfo/new-bugs-announce ---------- nosy: +matrixise _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue35069> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com