Whither datetime.date ?

Tim Peters tim.peters at gmail.com
Sat Feb 26 13:05:12 EST 2005


[Harald Hanche-Olsen]
> I'm confused.  I was going to try linkchecker, and it dies with a
> traceback ending in
>
>  File "/usr/local/lib/python2.4/calendar.py", line 32, in _localized_month
>    _months = [datetime.date(2001, i+1, 1).strftime for i in range(12)]
> AttributeError: 'module' object has no attribute 'date'
>
> Sure enough, there is no datetime.date, but there is a datetime.Date:
>
> Python 2.4 (#2, Feb 19 2005, 20:35:23)
> [GCC 3.4.2 [FreeBSD] 20040728] on freebsd5
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import datetime
> >>> dir(datetime)
> ['Date', 'DateTime', ...]
> 
> However, the Library Reference clearly states that datetime.date
> should exist.  Granted, it's been a while since I used python in
> anger, but isn't this what it says?
> 
>  http://www.python.org/doc/2.4/lib/node243.html
>  http://www.python.org/doc/2.4/lib/datetime-date.html
>
> Moreover, the datetime.date class is supposed to have a strftime()
> method.  datetime.Date does not.
>
> I'm beginning to wonder if the FreeBSD python package is at fault.
>
> Or what is really going on here?

As you've deduced, you're certainly not getting Python's builtin
datetime module.  Therefore you must be getting some other datetime
module.  Run Python with the "-v" switch to get output telling you how
imports are resolved.  That will show you where this other datetime
module is coming from.  Remember that Python searches along sys.path
to resolve imports, taking the first thing it finds with the right
name.  You almost certainly have something _called_ datetime earlier
in your PYTHONPATH than where the standard Python libraries appear.



More information about the Python-list mailing list