from datetime.datetime import today not working. python2.6.4 on windows

Gary Herron gherron at islandtraining.com
Thu Jan 7 01:21:56 EST 2010


Joshua Kordani wrote:
> Greetings all!
>
> So I'm reading through the manual and I get to the point where it 
> talks about packages and how to import them.  namely section 6.4 in 
> the tutorial.  I wont repeat the section here, but I want to 
> understand whats going on in the following (as typed on my computer).
>
> Python 2.6.4 (r264:75708, Oct 26 2009, 08:23:19) [MSC v.1500 32 bit 
> (Intel)] on
> win32
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import datetime
> >>> dir(datetime)
> ['MAXYEAR', 'MINYEAR', '__doc__', '__name__', '__package__', 'date', 
> 'datetime',
>  'datetime_CAPI', 'time', 'timedelta', 'tzinfo']
> >>> dir(datetime.datetime)
> ['__add__', '__class__', '__delattr__', '__doc__', '__eq__', 
> '__format__', '__ge
> __', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', 
> '__lt__', '
> __ne__', '__new__', '__radd__', '__reduce__', '__reduce_ex__', 
> '__repr__', '__rs
> ub__', '__setattr__', '__sizeof__', '__str__', '__sub__', 
> '__subclasshook__', 'a
> stimezone', 'combine', 'ctime', 'date', 'day', 'dst', 'fromordinal', 
> 'fromtimest
> amp', 'hour', 'isocalendar', 'isoformat', 'isoweekday', 'max', 
> 'microsecond', 'm
> in', 'minute', 'month', 'now', 'replace', 'resolution', 'second', 
> 'strftime', 's
> trptime', 'time', 'timetuple', 'timetz', 'today', 'toordinal', 
> 'tzinfo', 'tzname
> ', 'utcfromtimestamp', 'utcnow', 'utcoffset', 'utctimetuple', 
> 'weekday', 'year']
>
> >>> from datetime.datetime import today
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
> ImportError: No module named datetime
> >>>
>
> so dir on datetime shows symbols date, time, datetime,etc
> dir on datetime shows today, now, etc
>
> lets say for arguments sake that I want to just import the today 
> function, according to the documentation, the line should be:
> from datetime.datetime import today.
>
> as you can see, that didn't work.  why not?

Just a little confusion on your part.

datetime is a module, so you can import it (as you did) and objects from it

datetime.datetime is a type (like a class is a type) not a module so you 
cannot import from it.


So you can
  import datetime
and you can
  from datetime import <whatever>
but that's all the further you can go with imports.

Some of the confusion may be from having a class (well actually it's a 
type) with the same name as its module.  This is now considered bad form.

You might achieve the effect you were you were trying for like this:
  import datetime
  today = datetime.datetime.today
or
  from datetime import datetime
  today = datetime.today
Then you'll be able to call
  today()
at any time.

Gary Herron


>
> Josh




More information about the Python-list mailing list