Eric Azarcon wrote:

Hello!

I've installed the mx package from egenix, and I am experiencing pretty
odd behaviour.

If I launch python and run the following commands, I get an error:


import mx
from mx import *
mx.DateTime.today()

Well,

  from anything import *

is bad form for any module unless (like Tkinter, for example) it's been specifically designed to support this behavior. Since "the mx package" is actually a number of inter-dependent packages you are almost guaranteeing trouble here.

mx is not designed to be imported, it's just a common namespace for a number of modules by the same author.

Traceback (most recent call last):
  File "<stdin>", line 1, in ?
AttributeError: 'module' object has no attribute 'DateTime'

Try:

Python 2.4 (#1, Dec  4 2004, 20:10:33)
[GCC 3.3.3 (cygwin special)] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
 >>> import mx.DateTime as dt
 >>> dt.today()
<DateTime object for '2004-12-20 00:00:00.00' at a0d85e0>
 >>>

OK, great. However, if I then ask for help on the mx package first, the above command will work.


help()

help> modules -- list of modules -- help> mx -- displays mx info -- help> mx.DateTime -- displays mx.DateTime info -- help> --quit help here --

mx.DateTime.today()

<DateTime object for '2004-12-20 00:00:00.00' at 984a1b8>

Any ideas what is going on? Is there a path problem that gets resolved
by calling help()?

Note that issuing  help(mx) doesn't work. You have to go into help, do
the modules listing and then ask for mx.

Well, the help system actually imports the subpackages that live in the mx space when you ask for help about them. So that's why doing that allows you to resolve those names.

This same behaviour is displayed on my Fedora Core 3 box running
mx-2.0.5-3, and on 2 separate machines running RHEL-ES (most recent
version with updates applied) and egenix-mx-base-2.0.6-py2.2_1.

Any help would be very appreciated!

It's just a matter of using the packages in the intended way.

Thanks,

No problem.

Eric

p.s. the background is that I need to use mx because the target boxes
only have Python 2.2 on them. Using DateTime from Python 2.3 would be
preferred, but being a newbie, I have no idea how to compile just that
module from source and install it into 2.2. *sigh*

Well the first thing to try would be dropping it into /usr/lib/python2.2 and seeing if you can import it without errors. You might actually find that the built-in "time" module contains enough date/time functionality for your needs if they are simple.


regards
 Steve
--
Steve Holden               http://www.holdenweb.com/
Python Web Programming  http://pydish.holdenweb.com/
Holden Web LLC      +1 703 861 4237  +1 800 494 3119
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to