Gabriel Genellina wrote:
En Thu, 20 Nov 2008 17:36:11 -0200, Stef Mientki <[EMAIL PROTECTED]> escribió:

I'm not an expert, I even don't fully understand your problem,
but having struggled with imports in the past,
I've a solution now, which seems to work quit well.

That's not very helpful, is it? Were you planning to keep the solution
secret?

sorry slip of the keyboard ;-)
http://mientki.ruhosting.nl/data_www/pylab_works/pw_importing.html

May I reiterate my criticism to your "solution" posted last week?
You're welcome,
if there are better (even more important simpler) solutions, I'm in.
I don't think extending sys.path to include every directory under your project is a good idea. Basically, you're flattening the directory layout, removing any structure, like it was before Python 1.5 added package support. It is like dumping all your modules in a single directory, with no hierarchy and lots of name conflicts.
Well I started at 2.4 and now arrived at 2.5, so I don't know what it was at 1.5. And I'm probably going to stay at 2.5 for a long time, upgrading is one of the few (maybe the only) disadvantages of Python ;-)
For Python, I guess you're right, all files are in one flat directory, ...
... but it's just 1 program, so what's the objection ?
For the program itself, which is highly dynamic, it can find sets of python-files in certain subpaths,
so that's quit ordered I think ?

Worse: because your proposal makes the same file reachable under many different names, the *same* source module will generate *different* module objects stored as *different* entries in sys.modules. Globals don't work anymore, subclasses aren't subclasses... lots of problems.
Could you explain this a little more ...
... I'm just adding every subpath to the Pythonpath,
so in my ignorant believe, every module is imported the same way, but I might be wrong. " Globals not working" , a good program doesn't have any globals ( said a non-programmer ;-) Subclasses aren't subclasses ? ( I always derive subclasses in the module itself, or in the same directory as the parentclass)
Relative imports (PEP328 [1]) were introduced -among other things- as an attempt to avoid such problems. You're going in the opposite direction. Please stop doing that - or at least keep us informed of where you work!

[1] http://www.python.org/dev/peps/pep-0328

Sorry I don't understand all that pep-talk (I'm not a programmer ;-)
I read it starts with " For the second problem, it is proposed that all import statements be absolute by default (searching sys.path only) with special syntax (leading dots) for accessing package-relative imports."
I think that's exactly what I'm doing: absolute imports.

Please explain in simple language what I'm all doing wrong,
or how I get a better solution.

thanks,
Stef



--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to