New submission from sam_b <[email protected]>:
The docs https://docs.python.org/3/tutorial/modules.html#the-module-search-path
describe:
> When a module named spam is imported, the interpreter first searches for a
> built-in module with that name. If not found, it then searches for a file
> named spam.py in a list of directories given by the variable sys.path.
> sys.path is initialized from these locations:
> - The directory containing the input script (or the current directory when
> no file is specified).
> - PYTHONPATH (a list of directory names, with the same syntax as the shell
> variable PATH).
> - The installation-dependent default.
However, it seems like "the directory containing the input script" is checked
*before* the standard library:
➜ tmp more logging.py
def foo():
print('bar')
➜ tmp python
Python 2.7.15rc1 (default, Apr 15 2018, 21:51:34)
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import logging
>>> logging.foo()
bar
>>> logging.WARNING
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'WARNING'
>>>
Am I misunderstanding the docs?
----------
assignee: docs@python
components: Documentation
messages: 315653
nosy: docs@python, sam_b
priority: normal
severity: normal
status: open
title: Inaccurate docs on `import` behaviour
type: behavior
versions: Python 3.6
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue33340>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com