New submission from sam_b <s...@sambrown.eu>:

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 <rep...@bugs.python.org>
<https://bugs.python.org/issue33340>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to