On Monday, April 4, 2016 at 7:31:38 AM UTC-4, animalize wrote: > An example, the file-name is conflict with library-name in stdlib or > installed library. > > There is a file uuid.py that only has two lines: > > import uuid > print(uuid.uuid4()) > > Run uuid.py, output on Python 3.5.1: > > Traceback (most recent call last): > File "D:\uuid.py", line 1, in <module> > import uuid > File "D:\uuid.py", line 3, in <module> > print(uuid.uuid4()) > AttributeError: module 'uuid' has no attribute 'uuid4' > > I was spending about an hour to find out what happend when I was a > beginner, and I found I'm not the only one who confused by this problem. > > If the prompt can be beginner-friendly a little bit, I think it's a very > good thing. > E.g. says you are importing the file itself, rather than importing other > file or library.
I agree that it would be good if Python would be clear about this error. I suggested as much on Python-Ideas a few months ago: https://groups.google.com/d/topic/python-ideas/dNbXlL2XoJ8/discussion or https://mail.python.org/pipermail/python-ideas/2016-January/038165.html The thread did not end with a strong opinion one way or the other, though it did get distracted by other kinds of import mistakes. --Ned. -- https://mail.python.org/mailman/listinfo/python-list