Re: RE: [Zope] Another import doesn't find the module
My Structure has the following -FGDC (directory) - __init__.py - profile.py - DISTRIB.py -scripts (directory) - script1.py -extensions (directory -DISTINFO.py
The line I had that read from Products.Resources.FGDC import profile failed.
Before class1 of DISTINFO.py, I tried the above statement and recieve a 'can't import name profile'.
However, this line works like a charm: from Products.Resources.FGDC import DISTRIB
and is located directly under the above line. Totally baffling me. There is no syntax error in profile.py as I am using it from other methods and the object is added without trouble or error. To maybe clarify a few things, this is the basics of what I am attempting to accomplish. I have an object (distinfo) that is created inside of another record. This operation works fine. Now, when a special condition exists, the user may create an object also to be named distinfo, yet this one will have one more feature. I DO NOT want to do a monkey patch here. I want the user to specifically choose when the alternate object is to be added. Distinfo #1 is in the FGDC directory. Distinfo #2 will live in the extensions directory. I want to set of a script in the scripts directory that will cause the #2 to be added. By the way, both of these objects(#1 and #2) should have the same metatype. ----- Original Message ----- From: "Passin, Tom" <tpassin@mitretek.org> Date: Wednesday, May 28, 2003 1:30 pm Subject: RE: [Zope] Another import doesn't find the module
[Stacy Roberts Ladnier]
My Structure has the following -FGDC (directory) - __init__.py - profile.py - DISTRIB.py
The line I had that read from Products.Resources.FGDC import profile failed as you said it should.
However, this line works like a charm: from Products.Resources.FGDC import DISTRIB
BTW, I always interpreted this to mean from <directory> import <module>
Can you explain the *why's* on this one??
An import that fails when the import statement looks perfectly fine is often an indication that there is an error in the module to be imported.It could be a simple indentation error, or something more serious. What is the error message?
Import statements import packages, not directories. The __init__.py statement is processed when you import the package, and the modules are processed when you import them from the package. Although most __init__.py files are empty, some code does some really serious work in them I like to use them to store the absolute directory path, which I can use withr elative paths to compute where to put or find files - like this (in the __init__.py ) -
import os.path BASEPATH=os.path.dirname(__file__)
Then you can import BASEPATH from the package.
Cheers,
Tom P
On Wed, 2003-05-28 at 12:33, Stacy Roberts Ladnier wrote:
The line I had that read from Products.Resources.FGDC import profile failed.
Before class1 of DISTINFO.py, I tried the above statement and recieve a 'can't import name profile'.
However, this line works like a charm: from Products.Resources.FGDC import DISTRIB
and is located directly under the above line. Totally baffling me.
Is the solution Tom gave you not working?
Distinfo #1 is in the FGDC directory. Distinfo #2 will live in the extensions directory. I want to set of a script in the scripts directory that will cause the #2 to be added. By the way, both of these objects(#1 and #2) should have the same metatype.
This sounds like a pretty brittle system. Why not create a single product that can instantiate itself (or subobjects) more than one way? Dylan
participants (2)
-
Dylan Reinhardt -
Stacy Roberts Ladnier