Collection: weak error prompt drives beginner crazy

Ned Batchelder ned at nedbatchelder.com
Mon Apr 4 10:48:32 EDT 2016


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.



More information about the Python-list mailing list