[Zope] Re: Zope 2.8 Installation trouble on XP

Tim Peters tim.peters at gmail.com
Thu Jul 21 17:29:22 EDT 2005


...

[Martin Raspe]
>>> I see the same error message that ZOPE gives.

[Tim Peters]
>> FYI, pasting the exact DOS box input and output (as I did above) saves
>> the reader from needing to guess at 100 details.

>>> Any solution?

>> Sorry, not unless someone can give useful information.  If you're
>> familiar with Python, you should be able to figure out why the import
>> doesn't work, and tell us the solution.  If you're not familiar with
>> Python, it will have to wait until someone who is familiar, and can
>> reproduce the problem (I cannot), does this work.

[Martin] 
> Sorry, I thought that was clear. It says exactly the same as the ZOPE
> error message:
>
> U:\>U:\programme\Zope-2.8.0\bin\python.exe
> Python 2.3.5 (#62, Feb  8 2005, 16:23:02) [MSC v.1200 32 bit (Intel)] on
> win32
> Type "help", "copyright", "credits" or "license" for more information.
>  >>> from ZConfig.components.logger import loghandler
> Traceback (most recent call last):
>   File "<stdin>", line 1, in ?
> ImportError: No module named components.logger
>  >>>

Thank you -- that way we don't have to guess about anything.  I note
there that you did _not_ run Python while in Zope's bin\ directory,
but instead ran it while in the root of your U: disk.  That differs
from what I did, and may be significant (although I doubt it, the
current directory does play a role in setting up sys.path).

> But I think I found the error: On Windows, Python seems to prefer
> information from the Registry to the environment vars.

No, despite popular myth, Python on Windows normally doesn't consult
the registry for anything.  The exception is obscure "application
paths", never used in core Python, described in the near-inscrutable
comment block at top of this:

   http://cvs.sf.net/viewcvs.py/python/python/dist/src/PC/getpathp.c?rev=1.

Unfortunately, older (than build 204) versions of the pywin32 (aka
win32all) extensions did set "application paths" in the registry, and
Zope used to go on to install pywin32 in a broken way, causing no end
of potential PYTHONPATH confusions.  The Zope Windows installer does
not (and never did) set "application paths" in this sense.

> The wrong registry information was left there from a prior Zope/Plone
> installation.

Do recall exactly which registry keys seemed to be significant?

> It seems the Zope-2.8.0 Windows installer does not update
> the registry for Python,

As above.

> so Python takes a wrong import path.

Since Python doesn't normally consult the registry to build sys.path,
I don't think the problem is understood yet.

> I found out by saying
>   import ZConfig
>   globals()
> and the wrong directory would show up.

I'm not clear on what you did here.  Earlier you showed that you were
unable to import ZConfig.components.logger.  But you _were_ able to
import ZConfig on its own?

> Removing the old installation solved the problem.

That's good -- I think <wink>.

> Other Zope installations (2.7.4, 2.7.6) were not affected by the left-over
> registry entries.

Which registry entries, specifically?

> So I suppose this is a subtle bug in the 2.8.0 Windows installer.

The Zope Windows installer installs pywin32 in a very different way
than it used to, and installs a very different version of pywin32 than
it used to, but the zope.iss.in files (which are the input Inno Setup
uses to build the installer, and which contain the code for setting
Zope's registry entries) are byte-for-byte identical across 2.7 and
2.8.


More information about the Zope mailing list