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