On Saturday, February 16, 2013, Phil wrote: > Thank you for reading this. > > My adventures with Python have just begun and during the few weeks I have > tried many IDEs. The following piece of code fails under all IDEs, and the > interpreter, except under the Wing IDE. > > Why would this code work under the Wing IDE and nowhere else? Could there > be a different calendar module included with Wing? > > import calendar > > cal = calendar.prcal(2013) > print cal > > Traceback (most recent call last): > File "calendar.py", line 1, in <module> > import calendar > File "/home/phil/calendar.py", line 3, in <module> > cal = calendar.prcal(2013) > AttributeError: 'module' object has no attribute 'prcal' >
You named your own script file "calendar.py". As a result, when you did `import calendar`, due to the way Python 2.x searches for modules, it imports your file instead of the `calendar` module in the standard library, thus leading to the above exception. Because of this sort of problem, it is/was considered bad practice to give a module/package the same name as any std lib module. However, if you are running a recent-ish version of Python, adding `from __future__ import absolute_import` may resolve the problem. See PEP 328 for details. Absolute imports were thankfully made the default in Python 3. -- Cheers, Chris -- http://rebertia.com
-- http://mail.python.org/mailman/listinfo/python-list