Dear All, I try to install zope 2.7.0. After the installation. I have create zope installation directory using mkzopeinstance.py. From that zope installation directory I try to run bin/runzope command. But It will give below type error. *********************************************** ------ 2005-07-19T19:00:04 INFO(0) ZServer HTTP server started at Tue Jul 19 19:00:04 2005 Hostname: localhost.localdomain Port: 8080 ------ 2005-07-19T19:00:04 INFO(0) ZServer FTP server started at Tue Jul 19 19:00:04 2005 Hostname: prabahar Port: 8021 ------ 2005-07-19T19:00:04 INFO(0) Zope Set effective user to "enmail" Traceback (most recent call last): File "/Programs/Zope/2.7.0/lib/python/Zope/Startup/run.py", line 49, in ? run() File "/Programs/Zope/2.7.0/lib/python/Zope/Startup/run.py", line 19, in run start_zope(opts.configroot) File "/Programs/Zope/2.7.0/lib/python/Zope/Startup/__init__.py", line 51, in start_zope starter.startZope() File "/Programs/Zope/2.7.0/lib/python/Zope/Startup/__init__.py", line 230, in startZope Zope.startup() File "/Programs/Zope/2.7.0/lib/python/Zope/__init__.py", line 45, in startup from Zope.App.startup import startup as _startup File "/Programs/Zope/2.7.0/lib/python/Zope/App/startup.py", line 30, in ? import OFS.Application File "/Programs/Zope/2.7.0/lib/python/OFS/Application.py", line 18, in ? import Globals,Folder,os,sys,App.Product, App.ProductRegistry, misc_ File "/Programs/Zope/2.7.0/lib/python/App/Product.py", line 44, in ? from HelpSys.HelpSys import ProductHelp File "/Programs/Zope/2.7.0/lib/python/HelpSys/__init__.py", line 15, in ? import HelpSys File "/Programs/Zope/2.7.0/lib/python/HelpSys/HelpSys.py", line 18, in ? from Products.ZCatalog.ZCatalog import ZCatalog File "/Programs/Zope/2.7.0/lib/python/Products/ZCatalog/__init__.py", line 16, in ? import ZCatalog, Catalog, CatalogAwareness, CatalogPathAwareness, ZClasses File "/Programs/Zope/2.7.0/lib/python/Products/ZCatalog/ZCatalog.py", line 39, in ? from IZCatalog import IZCatalog File "/Programs/Zope/2.7.0/lib/python/Products/ZCatalog/IZCatalog.py", line 236, in ? __doc__ = IZCatalog.__doc__ + __doc__ TypeError: unsupported operand type(s) for +: 'NoneType' and 'NoneType' ***************************************************** Kindly let me know what is the problem ? I didn't know how to update zope.conf file. Kindly guide me how to start zope service regards Prabahar. __________________________________________________________ Free antispam, antivirus and 1GB to save all your messages Only in Yahoo! Mail: http://in.mail.yahoo.com
--On 19. Juli 2005 14:42:01 +0100 praba kar <prabazope@yahoo.co.in> wrote:
Dear All,
I try to install zope 2.7.0. After the installation. I have create zope installation directory using mkzopeinstance.py. From that zope installation directory I try to run bin/runzope command. But It will give
2.7.0 is *ancient*. Try 2.7.7. -aj
praba kar <prabazope@yahoo.co.in> wrote:
I try to install zope 2.7.0.
Stop right here. Zope 2.7.0 is hopelessly outdated. Use Zope 2.7.6. Florent -- Florent Guillaume, Nuxeo (Paris, France) CTO, Director of R&D +33 1 40 33 71 59 http://nuxeo.com fg@nuxeo.com
I want to intialize the value of ZTUtils.Iterator and use the value to increment tabindex attribute in my ZPT for forms in CMF Something like: <div tal:define iterator python:modules['ZTUtils'].Iterator; > <div> .. html form contents .. a field <input tal:attributes="tabindex python:Iterator.next() ... ... etc, etc. </div> </div> The first part gives me an iterator object. How do I get its value as an integer?
On 7/19/05, David Pratt <fairwinds@eastlink.ca> wrote:
I want to intialize the value of ZTUtils.Iterator and use the value to increment tabindex attribute in my ZPT for forms in CMF
Something like:
<div tal:define iterator python:modules['ZTUtils'].Iterator; > <div>
Don't you need to create it with a sequence like <div tal:define iterator python:modules['ZTUtils'].Iterator(range(100)); > -- Peter Bengtsson, work www.fry-it.com home www.peterbe.com hobby www.issuetrackerproduct.com
Hi Peter. Thanks for your reply. I think I am getting closer with this but still not quite right. It appears I am calling Iterator right, because it gets an Iterator instance and now getting number 1 but that doesn't tell me much. <div tal:define = "tabindex python:Iterator(range(100));"> <div> .. html form contents .. a field <input tal:attributes="tabindex/next ... ... another field </div> is giving tabindex="1" all the way through my forms. I thought next meant next, meaning you are asking the iterator for the next value. What am I missing? Regards, David On Tuesday, July 19, 2005, at 07:18 PM, Peter Bengtsson wrote:
On 7/19/05, David Pratt <fairwinds@eastlink.ca> wrote:
I want to intialize the value of ZTUtils.Iterator and use the value to increment tabindex attribute in my ZPT for forms in CMF
Something like:
<div tal:define iterator python:modules['ZTUtils'].Iterator; > <div>
Don't you need to create it with a sequence like <div tal:define iterator python:modules['ZTUtils'].Iterator(range(100)); > -- Peter Bengtsson, work www.fry-it.com home www.peterbe.com hobby www.issuetrackerproduct.com
David Pratt wrote:
<div tal:define = "tabindex python:Iterator(range(100));">
<div> .. html form contents .. a field <input tal:attributes="tabindex/next ... ... another field </div>
What are you actually trying to do here? Would the following work? <div tal:define = "tabindex python:range(1,101);"> <div> .. html form contents .. a field <input tal:attributes="tabindex ... ... another field </div> cheers, Chris - who has no idea what a ZTUtils.Iterator is supposed to do... -- Simplistix - Content Management, Zope & Python Consulting - http://www.simplistix.co.uk
Hi Chris. Thanks for your reply. My understanding (which may be flawed) is that ZTUtils iterator provides values of a sequence as you iterate over them with a repeat statement. I believe what I am trying to do is sensible. I have looked at the api and can't seem to get the right magic using the methods provided. Tabindex for forms keeps track of tab position so when you use tab key it moves the cursor to next field tabindex in form . So if I have 5 input fields from top to bottom, I want to define an iterator object, and obtain the next number in the iterator when zpt does its thing to create the form so that I would have a tabindex starting at 1 and next field value would be 2, then 3 etc. A range by itself doesn't do the trick since it provides all values to the variable where I am looking only for a single number incremented to the next value. Regards, David On Wednesday, July 20, 2005, at 03:51 AM, Chris Withers wrote:
David Pratt wrote:
<div tal:define = "tabindex python:Iterator(range(100));"> <div> .. html form contents .. a field <input tal:attributes="tabindex/next ... ... another field </div>
What are you actually trying to do here?
Would the following work?
<div tal:define = "tabindex python:range(1,101);"> <div> .. html form contents .. a field <input tal:attributes="tabindex ... ... another field </div>
cheers,
Chris - who has no idea what a ZTUtils.Iterator is supposed to do...
-- Simplistix - Content Management, Zope & Python Consulting - http://www.simplistix.co.uk
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 David Pratt wrote:
Hi Chris. Thanks for your reply.
My understanding (which may be flawed) is that ZTUtils iterator provides values of a sequence as you iterate over them with a repeat statement. I believe what I am trying to do is sensible. I have looked at the api and can't seem to get the right magic using the methods provided. Tabindex for forms keeps track of tab position so when you use tab key it moves the cursor to next field tabindex in form . So if I have 5 input fields from top to bottom, I want to define an iterator object, and obtain the next number in the iterator when zpt does its thing to create the form so that I would have a tabindex starting at 1 and next field value would be 2, then 3 etc.
A range by itself doesn't do the trick since it provides all values to the variable where I am looking only for a single number incremented to the next value.
- From $ZOPE/lib/python/ZTUtils/Iterator: __doc__='''Iterator class Unlike the builtin iterators of Python 2.2+, these classes are designed to maintain information about the state of an iteration. The Iterator() function accepts either a sequence or a Python iterator. The next() method fetches the next item, and returns true if it succeeds. $Id: Iterator.py,v 1.9.42.2 2003/11/04 19:27:43 evan Exp $''' Note that last sentence, which explains why you are seeing the '1' value everywere. 'tal:repeat' over a range should get you what you want; I don't think you *need* an iterator for your use case. Tres. - -- =================================================================== Tres Seaver +1 202-558-7113 tseaver@palladion.com Palladion Software "Excellence by Design" http://palladion.com -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.5 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFC3lB++gerLs4ltQ4RAuvSAJwPRCNefT9753fli0xOL7EEnRRHgwCggT/C M3ysckA7tZJZkZ0I10xgkLI= =jzat -----END PGP SIGNATURE-----
Thanks Tres. The 1's are explained for sure but I can't see a always doing the job for this. What I need is an object that keeps track of the last number given to it so it will supply the next based on its state. For use in a flat form with say a dozen fields you are not repeating over each field but still you need an incrementing tabindex value. In this case no repeat is necessary but each call to tabindex still requires next value and you can't do this if there if state is not available. I thought I could use the built-in iterator in this way but 1 or 0 for next will not return what I need from the instance. Could a method be added to existing Iterator class to provide the current or next value of Iterator instance for this purpose as opposed to true and false. Maybe called them currval and nextval or similar. I hoping not to have to create a product just to do this. Regards David On Wednesday, July 20, 2005, at 10:24 AM, Tres Seaver wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
David Pratt wrote:
Hi Chris. Thanks for your reply.
My understanding (which may be flawed) is that ZTUtils iterator provides values of a sequence as you iterate over them with a repeat statement. I believe what I am trying to do is sensible. I have looked at the api and can't seem to get the right magic using the methods provided. Tabindex for forms keeps track of tab position so when you use tab key it moves the cursor to next field tabindex in form . So if I have 5 input fields from top to bottom, I want to define an iterator object, and obtain the next number in the iterator when zpt does its thing to create the form so that I would have a tabindex starting at 1 and next field value would be 2, then 3 etc.
A range by itself doesn't do the trick since it provides all values to the variable where I am looking only for a single number incremented to the next value.
- From $ZOPE/lib/python/ZTUtils/Iterator:
__doc__='''Iterator class
Unlike the builtin iterators of Python 2.2+, these classes are designed to maintain information about the state of an iteration. The Iterator() function accepts either a sequence or a Python iterator. The next() method fetches the next item, and returns true if it succeeds.
$Id: Iterator.py,v 1.9.42.2 2003/11/04 19:27:43 evan Exp $'''
Note that last sentence, which explains why you are seeing the '1' value everywere. 'tal:repeat' over a range should get you what you want; I don't think you *need* an iterator for your use case.
Tres. - -- =================================================================== Tres Seaver +1 202-558-7113 tseaver@palladion.com Palladion Software "Excellence by Design" http://palladion.com -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.5 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFC3lB++gerLs4ltQ4RAuvSAJwPRCNefT9753fli0xOL7EEnRRHgwCggT/C M3ysckA7tZJZkZ0I10xgkLI= =jzat -----END PGP SIGNATURE-----
David Pratt wrote:
Thanks Tres. The 1's are explained for sure but I can't see a always doing the job for this. What I need is an object that keeps track of the last number given to it so it will supply the next based on its state. For use in a flat form with say a dozen fields you are not repeating over each field but still you need an incrementing tabindex value.
Ah, I see what you're after, something akin to an SQL sequence, right? Well, Iterator ain't that ;-) What's so horrible about just putting these tabindexes in by hand? Your code would certainly execture faster... Chris -- Simplistix - Content Management, Zope & Python Consulting - http://www.simplistix.co.uk
Ah, I see what you're after, something akin to an SQL sequence, right? Well, Iterator ain't that ;-)
Hi Chris I guess something like that but that is what an iterator does. ZTUtils just doesn't provide a method to get the values out of it (which it could if the methods were available).
What's so horrible about just putting these tabindexes in by hand?
Your code would certainly execture faster...
Well, by hand is not the solution either. It is not as simple as that since I am using portlets in CMF and there are forms in portlets too. You can't just number them like 1,2,3 etc because you end up with conflicts in tabindex values when your templates are rendered. This is the second problem I am trying to solve because ZTUtils allow you to pass into it whatever sequence you want. You could give it a different sequence to start with so when it iterates using its own sequence, results keeps the tabindex from conflicting. This is more of a case of looking at an existing tool to perform this so you can retrieve from your ZPT (that doesn't require you to write one with all the security bypasses to make it work). It appears ZTUtils is the tool that could do this. I mean it is an object, it iterates, it iterates on values you pass it , it knows its current state and the security has been bypassed to let you call it in a ZPT, it just doesn't provide a method to obtain its values directly. Regards, David
David Pratt wrote:
Ah, I see what you're after, something akin to an SQL sequence, right? Well, Iterator ain't that ;-)
I guess something like that but that is what an iterator does.
Why makes you think ZTUtils Iterators were designed for this?
Well, by hand is not the solution either. It is not as simple as that since I am using portlets in CMF
You meean portlets in Plone, right? ;-)
You can't just number them like 1,2,3 etc because you end up with conflicts in tabindex values when your templates are rendered.
So give them each their own numbers based on the worst case of all portlets being present on one page...
your ZPT (that doesn't require you to write one with all the security bypasses to make it work).
They are not "security bypasses", they are appropriate security declarations based on the work the ZTUtils code does when executing... Looks like you're on your own... Chris -- Simplistix - Content Management, Zope & Python Consulting - http://www.simplistix.co.uk
Hi Chris. I believe the purpose of ZTUtils are utility functions for page templating. That said, the Iterator class could be more useful by exposing its values based on its state - the point I had made. Versatility is the beautiful thing about python - it rarely matters to me what intention there is or may have been for a class so long as it supplies the methods I am after. In the end, there's really nothing here that can't be solved with a simple tool and a bit of flexibility on my part. Many thanks. Regards, David On Friday, July 22, 2005, at 02:08 PM, Chris Withers wrote:
David Pratt wrote:
Ah, I see what you're after, something akin to an SQL sequence, right? Well, Iterator ain't that ;-) I guess something like that but that is what an iterator does.
Why makes you think ZTUtils Iterators were designed for this?
Well, by hand is not the solution either. It is not as simple as that since I am using portlets in CMF
You meean portlets in Plone, right? ;-)
You can't just number them like 1,2,3 etc because you end up with conflicts in tabindex values when your templates are rendered.
So give them each their own numbers based on the worst case of all portlets being present on one page...
your ZPT (that doesn't require you to write one with all the security bypasses to make it work).
They are not "security bypasses", they are appropriate security declarations based on the work the ZTUtils code does when executing...
Looks like you're on your own...
Chris
-- Simplistix - Content Management, Zope & Python Consulting - http://www.simplistix.co.uk
Am Sonntag, den 24.07.2005, 19:50 -0300 schrieb David Pratt:
Hi Chris. I believe the purpose of ZTUtils are utility functions for page templating. That said, the Iterator class could be more useful by exposing its values based on its state - the point I had made. Versatility is the beautiful thing about python - it rarely matters to me what intention there is or may have been for a class so long as it supplies the methods I am after. In the end, there's really nothing here that can't be solved with a simple tool and a bit of flexibility on my part. Many thanks.
Regards, David
On Friday, July 22, 2005, at 02:08 PM, Chris Withers wrote:
David Pratt wrote:
Ah, I see what you're after, something akin to an SQL sequence, right? Well, Iterator ain't that ;-) I guess something like that but that is what an iterator does.
Why makes you think ZTUtils Iterators were designed for this?
Well, by hand is not the solution either. It is not as simple as that since I am using portlets in CMF
You meean portlets in Plone, right? ;-)
You can't just number them like 1,2,3 etc because you end up with conflicts in tabindex values when your templates are rendered.
So give them each their own numbers based on the worst case of all portlets being present on one page...
your ZPT (that doesn't require you to write one with all the security bypasses to make it work).
They are not "security bypasses", they are appropriate security declarations based on the work the ZTUtils code does when executing...
Looks like you're on your own...
It looks like this part of the Iterator is just misdesigned: def next(self): if not (hasattr(self, '_next') or self._prep_next(self)): return 0 self.index = i = self.nextIndex self.nextIndex = i+1 self._advance(self) return 1 IIRC, ZTUtils were written long before the python iterators became standard. So the method name next was used and now clashes with the standard iterator protocol. It could be fixed but only if there is no product in the world using it or all must be fixed before. I propose: has_next() or something in place of it.
New methods on the iterator would do the trick. I had suggested currval and nextval or similar - two or three simple methods would increase the versatility of the Iterator class for a variety of things. Is there interest in adding new methods to ZTUtils to expose these values? It seems to fit the purpose of ZTUtils and would save making another tool at site or portal level. The fact is it doesn't have to be a portal / portlets type of situation to benefit from this. It is not CMF specific in the least and would be useful in any multi column layout using ZPT where you need values for tabindex attributes without hand coding (particularly when your content is dynamic). If there is no interest, I'll leave this alone and carry on with a portal tool for my CMF work instead. ZTUtils is really core Zope issue so if there is interest, I can create a few methods but need some direction on what to do with them afterwards. Regards, David On Monday, July 25, 2005, at 06:03 AM, Tino Wildenhain wrote:
It looks like this part of the Iterator is just misdesigned:
def next(self): if not (hasattr(self, '_next') or self._prep_next(self)): return 0 self.index = i = self.nextIndex self.nextIndex = i+1 self._advance(self) return 1
IIRC, ZTUtils were written long before the python iterators became standard. So the method name next was used and now clashes with the standard iterator protocol.
It could be fixed but only if there is no product in the world using it or all must be fixed before.
I propose: has_next() or something in place of it.
--- Florent Guillaume <fg@nuxeo.com> wrote:
praba kar <prabazope@yahoo.co.in> wrote:
I try to install zope 2.7.0.
Stop right here. Zope 2.7.0 is hopelessly outdated. Use Zope 2.7.6.
Florent
-- Florent Guillaume, Nuxeo (Paris, France) CTO, Director of R&D +33 1 40 33 71 59 http://nuxeo.com fg@nuxeo.com
Dear All, I have same problem in Zope 2.7. 6 installation also. kinldy help me. I have installed successfully but I don't know how to start zope properly. Actully now I am starting zope service using runzope from bin directory of instance. I don't know how to use zopectl command. ------ 2005-07-22T11:48:07 INFO(0) ZServer HTTP server started at Fri Jul 22 11:48:07 2005 Hostname: localhost.localdomain Port: 8080 ------ 2005-07-22T11:48:07 INFO(0) ZServer FTP server started at Fri Jul 22 11:48:07 2005 Hostname: prabahar Port: 8021 Traceback (most recent call last): File "/Programs/Zope/2.7.6/lib/python/Zope/Startup/run.py", line 50, in ? run() File "/Programs/Zope/2.7.6/lib/python/Zope/Startup/run.py", line 19, in run start_zope(opts.configroot) File "/Programs/Zope/2.7.6/lib/python/Zope/Startup/__init__.py", line 52, in start_zope starter.startZope() File "/Programs/Zope/2.7.6/lib/python/Zope/Startup/__init__.py", line 231, in startZope Zope.startup() File "/Programs/Zope/2.7.6/lib/python/Zope/__init__.py", line 46, in startup from Zope.App.startup import startup as _startup File "/Programs/Zope/2.7.6/lib/python/Zope/App/startup.py", line 30, in ? import OFS.Application File "/Programs/Zope/2.7.6/lib/python/OFS/Application.py", line 17, in ? import Globals,Folder,os,sys,App.Product, App.ProductRegistry, misc_ File "/Programs/Zope/2.7.6/lib/python/App/Product.py", line 44, in ? from HelpSys.HelpSys import ProductHelp File "/Programs/Zope/2.7.6/lib/python/HelpSys/__init__.py", line 15, in ? import HelpSys File "/Programs/Zope/2.7.6/lib/python/HelpSys/HelpSys.py", line 18, in ? from Products.ZCatalog.ZCatalog import ZCatalog File "/Programs/Zope/2.7.6/lib/python/Products/ZCatalog/__init__.py", line 16, in ? import ZCatalog, Catalog, CatalogAwareness, CatalogPathAwareness, ZClasses File "/Programs/Zope/2.7.6/lib/python/Products/ZCatalog/ZCatalog.py", line 40, in ? from IZCatalog import IZCatalog File "/Programs/Zope/2.7.6/lib/python/Products/ZCatalog/IZCatalog.py", line 236, in ? __doc__ = IZCatalog.__doc__ + __doc__ TypeError: unsupported operand type(s) for +: 'NoneType' and 'NoneType' _______________________________________________________ Too much spam in your inbox? Yahoo! Mail gives you the best spam protection for FREE! http://in.mail.yahoo.com
Am Freitag, den 22.07.2005, 07:31 +0100 schrieb praba kar:
--- Florent Guillaume <fg@nuxeo.com> wrote:
praba kar <prabazope@yahoo.co.in> wrote:
I try to install zope 2.7.0.
Stop right here. Zope 2.7.0 is hopelessly outdated. Use Zope 2.7.6.
Florent
-- Florent Guillaume, Nuxeo (Paris, France) CTO, Director of R&D +33 1 40 33 71 59 http://nuxeo.com fg@nuxeo.com
Dear All, I have same problem in Zope 2.7. 6 installation also. kinldy help me. I have installed successfully but I don't know how to start zope properly. Actully now I am starting zope service using runzope from bin directory of instance. I don't know how to use zopectl command.
runzope or zopectl fg are good for testing if the installation works because you get all the messages on screen (like you show below) zopectl start should be used in production because it detaches zope from the shell. I think the INSTALL.txt section needs some clarify on this - although zopectl gets mentioned there: """ Starting Zope Once an instance home has been created, the Zope server can now be started using this command: /location/of/zope/instance/bin/runzope If you get errors indicating that addresses are in use, then you will have to supply arguments to runzope to change the ports used for HTTP or FTP. The default HTTP and FTP ports used by Zope are 8080 and 8021 respectively. You can change the ports used by specifying the "port-base" parameter to runzope. For example, to run Zope on ports 9080 and 9021:: ./bin/runzope -X port-base=1000 There is also an interactive Zope command shell named 'zopectl' that may be invoked by running 'bin/zopectl'. By default, 'zopectl start' will start a background process that manages Zope and 'zopectl stop' will stop the background process. """
------ 2005-07-22T11:48:07 INFO(0) ZServer HTTP server started at Fri Jul 22 11:48:07 2005 Hostname: localhost.localdomain Port: 8080 ------ 2005-07-22T11:48:07 INFO(0) ZServer FTP server started at Fri Jul 22 11:48:07 2005 Hostname: prabahar Port: 8021 Traceback (most recent call last): File "/Programs/Zope/2.7.6/lib/python/Zope/Startup/run.py", line 50, in ? run() File "/Programs/Zope/2.7.6/lib/python/Zope/Startup/run.py", line 19, in run start_zope(opts.configroot) File "/Programs/Zope/2.7.6/lib/python/Zope/Startup/__init__.py", line 52, in start_zope starter.startZope() File "/Programs/Zope/2.7.6/lib/python/Zope/Startup/__init__.py", line 231, in startZope Zope.startup() File "/Programs/Zope/2.7.6/lib/python/Zope/__init__.py", line 46, in startup from Zope.App.startup import startup as _startup File "/Programs/Zope/2.7.6/lib/python/Zope/App/startup.py", line 30, in ? import OFS.Application File "/Programs/Zope/2.7.6/lib/python/OFS/Application.py", line 17, in ? import Globals,Folder,os,sys,App.Product, App.ProductRegistry, misc_ File "/Programs/Zope/2.7.6/lib/python/App/Product.py", line 44, in ? from HelpSys.HelpSys import ProductHelp File "/Programs/Zope/2.7.6/lib/python/HelpSys/__init__.py", line 15, in ? import HelpSys File "/Programs/Zope/2.7.6/lib/python/HelpSys/HelpSys.py", line 18, in ? from Products.ZCatalog.ZCatalog import ZCatalog File "/Programs/Zope/2.7.6/lib/python/Products/ZCatalog/__init__.py", line 16, in ? import ZCatalog, Catalog, CatalogAwareness, CatalogPathAwareness, ZClasses File "/Programs/Zope/2.7.6/lib/python/Products/ZCatalog/ZCatalog.py", line 40, in ? from IZCatalog import IZCatalog File "/Programs/Zope/2.7.6/lib/python/Products/ZCatalog/IZCatalog.py", line 236, in ? __doc__ = IZCatalog.__doc__ + __doc__ TypeError: unsupported operand type(s) for +: 'NoneType' and 'NoneType'
this is faszinating. I have no Idea why on your installation are the docstrings None. Yan you please quote the code lines around line 236 in /Programs/Zope/2.7.6/lib/python/Products/ZCatalog/IZCatalog.py ? -- Tino Wildenhain <tino@wildenhain.de>
participants (8)
-
Andreas Jung -
Chris Withers -
David Pratt -
Florent Guillaume -
Peter Bengtsson -
praba kar -
Tino Wildenhain -
Tres Seaver