Loading ...
Sorry, an error occurred while loading the content.
 

Re: [Cheetahtemplate-discuss] Importing Cheetah.Template.Template unusually slow?

Expand Messages
  • R. Tyler Ballance
    ... Heh, no worries another release is due fairly soon anyways since I ve got a couple bugfixes and refactorings in `next` branch for v2.4.2; having a good
    Message 1 of 24 , Jan 31, 2010
      On Mon, 01 Feb 2010, Matthew Beauregard wrote:

      >
      > On 28/01/2010, at 3:48 PM, R. Tyler Ballance wrote:
      >
      > >
      > > On Wed, 27 Jan 2010, Matthew Beauregard wrote:
      > >
      > >> Hi,
      > >>
      > >> I was trying to speed up my CGI, and I worked out that the lion's share of execution time was taken up by the Cheetah import. Is 0.7s unusually slow? Where should I start in trying to speed it up?
      > >
      > > After removing the WebWare legacy imports in Cheetah.Servlet, I think you
      > > should see a speed-up in import-time on your machine. Would you mind grabbing a
      > > tarball from GitHub [1] and testing it for me (I don't have a Mac handy) to
      > > verify the fix?
      >
      > That's done the trick, thanks!
      >
      > I'm very happy with that tarball, no need to change release schedules on my account.

      Heh, no worries another release is due fairly soon anyways since I've got a
      couple bugfixes and refactorings in `next` branch for v2.4.2; having a good
      performance improvement for Mac users is just a little extra icing :)

      Cheers,
      -R. Tyler Ballance
      --------------------------------------
      Jabber: rtyler@...
      GitHub: http://github.com/rtyler
      Twitter: http://twitter.com/agentdero
      Blog: http://unethicalblogger.com
    • Matthew Beauregard
      ... I just tested this on a 10.5 Mac running Python 2.5.1 and got the following exception: /Library/Python/2.5/site-packages/Cheetah-2.4.2-py2.5.egg/Cheetah/
      Message 2 of 24 , Feb 1, 2010

        On 28/01/2010, at 3:48 PM, R. Tyler Ballance wrote:


        On Wed, 27 Jan 2010, Matthew Beauregard wrote:

        Hi,

        I was trying to speed up my CGI, and I worked out that the lion's share of execution time was taken up by the Cheetah import.  Is 0.7s unusually slow?  Where should I start in trying to speed it up?

        After removing the WebWare legacy imports in Cheetah.Servlet, I think you
        should see a speed-up in import-time on your machine. Would you mind grabbing a
        tarball from GitHub [1] and testing it for me (I don't have a Mac handy) to
        verify the fix?

        I just tested this on a 10.5 Mac running Python 2.5.1 and got the following exception:

         /Library/Python/2.5/site-packages/Cheetah-2.4.2-py2.5.egg/Cheetah/NameMapper.py in _isInstanceOrClass(obj=<bound method Member.onLoads of <__main__.Member object at 0x1abd890>>)
          190 
          191 def _isInstanceOrClass(obj):
          192     if type(obj) in (InstanceType, ClassType):
          193         # oldstyle
          194         return True
        builtin type = <type 'type'>, obj = <bound method Member.onLoads of <__main__.Member object at 0x1abd890>>, InstanceType undefined, ClassType undefined

        <type 'exceptions.NameError'>: global name 'InstanceType' is not defined   


        I chucked in a "from types import InstanceType, ClassType" at the top of the file, which has got me going, but it might need looking at?


        thanks,

        Matthew



      • R. Tyler Ballance
        ... Very good, but you re about a day late ;) http://github.com/rtyler/cheetah/commit/62f5a2fe995695c1a88cef5e059192b20143afe0 Your workaround is fine, but you
        Message 3 of 24 , Feb 1, 2010
          On Tue, 02 Feb 2010, Matthew Beauregard wrote:

          >
          > On 28/01/2010, at 3:48 PM, R. Tyler Ballance wrote:
          >
          > >
          > >On Wed, 27 Jan 2010, Matthew Beauregard wrote:
          > >
          > >>Hi,
          > >>
          > >>I was trying to speed up my CGI, and I worked out that the
          > >>lion's share of execution time was taken up by the Cheetah
          > >>import. Is 0.7s unusually slow? Where should I start in trying
          > >>to speed it up?
          > >
          > >After removing the WebWare legacy imports in Cheetah.Servlet, I
          > >think you
          > >should see a speed-up in import-time on your machine. Would you
          > >mind grabbing a
          > >tarball from GitHub [1] and testing it for me (I don't have a Mac
          > >handy) to
          > >verify the fix?
          >
          > I just tested this on a 10.5 Mac running Python 2.5.1 and got the
          > following exception:
          >
          > /Library/Python/2.5/site-packages/Cheetah-2.4.2-py2.5.egg/Cheetah/
          > NameMapper.py in _isInstanceOrClass(obj=<bound method Member.onLoads
          > of <__main__.Member object at 0x1abd890>>)

          Very good, but you're about a day late ;)

          http://github.com/rtyler/cheetah/commit/62f5a2fe995695c1a88cef5e059192b20143afe0

          Your workaround is fine, but you might want to look into why you're not using
          the compiled namemapper

          Cheers,
          -R. Tyler Ballance
          --------------------------------------
          Jabber: rtyler@...
          GitHub: http://github.com/rtyler
          Twitter: http://twitter.com/agentdero
          Blog: http://unethicalblogger.com
        • Matthew Beauregard
          ... Actually, yeah, that s just bit me. There is (and has been for years) a difference between the C and Python NameMappers that my code triggers so parts of
          Message 4 of 24 , Feb 1, 2010
            > Your workaround is fine, but you might want to look into why you're
            > not using
            > the compiled namemapper

            Actually, yeah, that's just bit me. There is (and has been for years)
            a difference between the C and Python NameMappers that my code
            triggers so parts of it only work with the C mapper. That's been fine
            until now when I'm trying to build from git/next.

            From what I can see the compiled mapper isn't building right for me:

            gcc -fno-strict-aliasing -Wno-long-double -no-cpp-precomp -mno-fused-
            madd -fno-common -dynamic -DNDEBUG -g -Os -Wall -Wstrict-prototypes -
            DMACOSX -I/usr/include/ffi -DENABLE_DTRACE -arch i386 -arch ppc -pipe -
            I/System/Library/Frameworks/Python.framework/Versions/2.5/include/
            python2.5 -c cheetah/c/_namemapper.c -o build/temp.macosx-10.5-
            i386-2.5/cheetah/c/_namemapper.o
            cheetah/c/_namemapper.c: In function ‘setNotFoundException’:
            cheetah/c/_namemapper.c:38: warning: implicit declaration of function
            ‘PyUnicode_FromFormat’
            cheetah/c/_namemapper.c:38: warning: assignment makes pointer from
            integer without a cast
            cheetah/c/_namemapper.c: In function ‘setNotFoundException’:
            cheetah/c/_namemapper.c:38: warning: implicit declaration of function
            ‘PyUnicode_FromFormat’
            cheetah/c/_namemapper.c:38: warning: assignment makes pointer from
            integer without a cast
            cheetah/c/_namemapper.c: In function ‘wrapInternalNotFoundException’:
            cheetah/c/_namemapper.c:62: warning: assignment makes pointer from
            integer without a cast
            cheetah/c/_namemapper.c: In function ‘wrapInternalNotFoundException’:
            cheetah/c/_namemapper.c:62: warning: assignment makes pointer from
            integer without a cast

            So then I get:

            >>> from Cheetah._namemapper import NotFound, valueForKey, valueForName
            Traceback (most recent call last):
            File "<stdin>", line 1, in <module>
            ImportError: dlopen(/Library/Python/2.5/site-packages/Cheetah-2.4.2-
            py2.5-macosx-10.5-i386.egg/Cheetah/_namemapper.so, 2): Symbol not
            found: _PyUnicode_FromFormat
            Referenced from: /Library/Python/2.5/site-packages/Cheetah-2.4.2-
            py2.5-macosx-10.5-i386.egg/Cheetah/_namemapper.so
            Expected in: dynamic lookup

            thanks,
            Matthew


            ------------------------------------------------------------------------------
            The Planet: dedicated and managed hosting, cloud storage, colocation
            Stay online with enterprise data centers and the best network in the business
            Choose flexible plans and management services without long-term contracts
            Personal 24x7 support from experience hosting pros just a phone call away.
            http://p.sf.net/sfu/theplanet-com
            _______________________________________________
            Cheetahtemplate-discuss mailing list
            Cheetahtemplate-discuss@...
            https://lists.sourceforge.net/lists/listinfo/cheetahtemplate-discuss
          • R. Tyler Ballance
            ... Ah yes indeed, this is another thing I ve messed up in the next branch and haven t had a chance to fix yet :) I made a good chunk of changes without
            Message 5 of 24 , Feb 1, 2010
              On Tue, 02 Feb 2010, Matthew Beauregard wrote:

              > >Your workaround is fine, but you might want to look into why
              > >you're not using
              > >the compiled namemapper
              >
              > Actually, yeah, that's just bit me. There is (and has been for
              > years) a difference between the C and Python NameMappers that my
              > code triggers so parts of it only work with the C mapper. That's
              > been fine until now when I'm trying to build from git/next.

              Ah yes indeed, this is another thing I've messed up in the next branch and
              haven't had a chance to fix yet :)

              I made a good chunk of changes without checking Hudson to see how they were
              performing on other versions of Python and other platforms. This past weekend I
              went back to Hudson and realized my error.

              You can check out the current build results here:
              http://avocado.monkeypox.org:8080/job/Cheetah_next/

              My apologies, I typically work under Python 2.6 so I was completely oblivious
              to the breakages on Python 2.4 and 2.5

              I'll probably fix it tonight or tomorrow sometime; I'll update the thread when
              it's there

              >
              > From what I can see the compiled mapper isn't building right for me:
              >
              > gcc -fno-strict-aliasing -Wno-long-double -no-cpp-precomp
              > -mno-fused-madd -fno-common -dynamic -DNDEBUG -g -Os -Wall
              > -Wstrict-prototypes -DMACOSX -I/usr/include/ffi -DENABLE_DTRACE
              > -arch i386 -arch ppc -pipe -
              > I/System/Library/Frameworks/Python.framework/Versions/2.5/include/
              > python2.5 -c cheetah/c/_namemapper.c -o build/temp.macosx-10.5-
              > i386-2.5/cheetah/c/_namemapper.o
              > cheetah/c/_namemapper.c: In function ?setNotFoundException?:
              > cheetah/c/_namemapper.c:38: warning: implicit declaration of
              > function ?PyUnicode_FromFormat?
              > cheetah/c/_namemapper.c:38: warning: assignment makes pointer from
              > integer without a cast
              > cheetah/c/_namemapper.c: In function ?setNotFoundException?:
              > cheetah/c/_namemapper.c:38: warning: implicit declaration of
              > function ?PyUnicode_FromFormat?
              > cheetah/c/_namemapper.c:38: warning: assignment makes pointer from
              > integer without a cast
              > cheetah/c/_namemapper.c: In function ?wrapInternalNotFoundException?:
              > cheetah/c/_namemapper.c:62: warning: assignment makes pointer from
              > integer without a cast
              > cheetah/c/_namemapper.c: In function ?wrapInternalNotFoundException?:
              > cheetah/c/_namemapper.c:62: warning: assignment makes pointer from
              > integer without a cast
              >
              > So then I get:
              >
              > >>> from Cheetah._namemapper import NotFound, valueForKey, valueForName
              > Traceback (most recent call last):
              > File "<stdin>", line 1, in <module>
              > ImportError: dlopen(/Library/Python/2.5/site-packages/Cheetah-2.4.2-
              > py2.5-macosx-10.5-i386.egg/Cheetah/_namemapper.so, 2): Symbol not
              > found: _PyUnicode_FromFormat
              > Referenced from: /Library/Python/2.5/site-packages/Cheetah-2.4.2-
              > py2.5-macosx-10.5-i386.egg/Cheetah/_namemapper.so
              > Expected in: dynamic lookup
              >
              > thanks,
              > Matthew
              >
              Cheers,
              -R. Tyler Ballance
              --------------------------------------
              Jabber: rtyler@...
              GitHub: http://github.com/rtyler
              Twitter: http://twitter.com/agentdero
              Blog: http://unethicalblogger.com
            • Michael Higgins
              Just downloaded the tarball from http://pypi.python.org/pypi/Cheetah/2.4.2.1 and I m seeing similar compile problems to the ones reported below. I m on OS X
              Message 6 of 24 , Mar 9, 2010
                Just downloaded the tarball from http://pypi.python.org/pypi/Cheetah/2.4.2.1
                and I'm seeing similar compile problems to the ones reported below.

                I'm on OS X 10.5.8, using python 2.5.1. When I unpack the tarball and
                do python setup.py build, it spits out this:

                ...
                building 'Cheetah._namemapper' extension
                creating build/temp.macosx-10.5-i386-2.5
                creating build/temp.macosx-10.5-i386-2.5/cheetah
                creating build/temp.macosx-10.5-i386-2.5/cheetah/c
                gcc -fno-strict-aliasing -Wno-long-double -no-cpp-precomp -mno-fused-
                madd -fno-common -dynamic -DNDEBUG -g -Os -Wall -Wstrict-prototypes -
                DMACOSX -I/usr/include/ffi -DENABLE_DTRACE -arch i386 -arch ppc -pipe -
                I/System/Library/Frameworks/Python.framework/Versions/2.5/include/
                python2.5 -c cheetah/c/_namemapper.c -o build/temp.macosx-10.5-
                i386-2.5/cheetah/c/_namemapper.o
                cheetah/c/_namemapper.c: In function ‘setNotFoundException’:
                cheetah/c/_namemapper.c:38: warning: implicit declaration of function
                ‘PyUnicode_FromFormat’
                cheetah/c/_namemapper.c:38: warning: assignment makes pointer from
                integer without a castcheetah/c/_namemapper.c: In function
                ‘setNotFoundException’:
                cheetah/c/_namemapper.c:38: warning: implicit declaration of function
                ‘PyUnicode_FromFormat’
                cheetah/c/_namemapper.c:38: warning: assignment makes pointer from
                integer without a cast

                cheetah/c/_namemapper.c: In function
                ‘wrapInternalNotFoundException’:cheetah/c/_namemapper.c: In function
                ‘wrapInternalNotFoundException’:
                cheetah/c/_namemapper.c:62: warning: assignment makes pointer from
                integer without a cast
                cheetah/c/_namemapper.c:62: warning: assignment makes pointer from
                integer without a cast

                gcc -Wl,-F. -bundle -undefined dynamic_lookup -arch i386 -arch ppc
                build/temp.macosx-10.5-i386-2.5/cheetah/c/_namemapper.o -o build/
                lib.macosx-10.5-i386-2.5/Cheetah/_namemapper.so
                ...

                and then the C version of the namemapper doesn't import because of
                missing symbols.

                Is there another build out there that fixes this, or is it still in
                the pipeline?

                (And thanks for all your hard work! Cheetah is great!)

                Mike



                On Feb 1, 2010, at 10:53 PM, R. Tyler Ballance wrote:

                >
                > On Tue, 02 Feb 2010, Matthew Beauregard wrote:
                >
                >>> Your workaround is fine, but you might want to look into why
                >>> you're not using
                >>> the compiled namemapper
                >>
                >> Actually, yeah, that's just bit me. There is (and has been for
                >> years) a difference between the C and Python NameMappers that my
                >> code triggers so parts of it only work with the C mapper. That's
                >> been fine until now when I'm trying to build from git/next.
                >
                > Ah yes indeed, this is another thing I've messed up in the next
                > branch and
                > haven't had a chance to fix yet :)
                >
                > I made a good chunk of changes without checking Hudson to see how
                > they were
                > performing on other versions of Python and other platforms. This
                > past weekend I
                > went back to Hudson and realized my error.
                >
                > You can check out the current build results here:
                > http://avocado.monkeypox.org:8080/job/Cheetah_next/
                >
                > My apologies, I typically work under Python 2.6 so I was completely
                > oblivious
                > to the breakages on Python 2.4 and 2.5
                >
                > I'll probably fix it tonight or tomorrow sometime; I'll update the
                > thread when
                > it's there
                >
                >>
                >> From what I can see the compiled mapper isn't building right for me:
                >>
                >> gcc -fno-strict-aliasing -Wno-long-double -no-cpp-precomp
                >> -mno-fused-madd -fno-common -dynamic -DNDEBUG -g -Os -Wall
                >> -Wstrict-prototypes -DMACOSX -I/usr/include/ffi -DENABLE_DTRACE
                >> -arch i386 -arch ppc -pipe -
                >> I/System/Library/Frameworks/Python.framework/Versions/2.5/include/
                >> python2.5 -c cheetah/c/_namemapper.c -o build/temp.macosx-10.5-
                >> i386-2.5/cheetah/c/_namemapper.o
                >> cheetah/c/_namemapper.c: In function ?setNotFoundException?:
                >> cheetah/c/_namemapper.c:38: warning: implicit declaration of
                >> function ?PyUnicode_FromFormat?
                >> cheetah/c/_namemapper.c:38: warning: assignment makes pointer from
                >> integer without a cast
                >> cheetah/c/_namemapper.c: In function ?setNotFoundException?:
                >> cheetah/c/_namemapper.c:38: warning: implicit declaration of
                >> function ?PyUnicode_FromFormat?
                >> cheetah/c/_namemapper.c:38: warning: assignment makes pointer from
                >> integer without a cast
                >> cheetah/c/_namemapper.c: In function ?wrapInternalNotFoundException?:
                >> cheetah/c/_namemapper.c:62: warning: assignment makes pointer from
                >> integer without a cast
                >> cheetah/c/_namemapper.c: In function ?wrapInternalNotFoundException?:
                >> cheetah/c/_namemapper.c:62: warning: assignment makes pointer from
                >> integer without a cast
                >>
                >> So then I get:
                >>
                >>>>> from Cheetah._namemapper import NotFound, valueForKey,
                >>>>> valueForName
                >> Traceback (most recent call last):
                >> File "<stdin>", line 1, in <module>
                >> ImportError: dlopen(/Library/Python/2.5/site-packages/Cheetah-2.4.2-
                >> py2.5-macosx-10.5-i386.egg/Cheetah/_namemapper.so, 2): Symbol not
                >> found: _PyUnicode_FromFormat
                >> Referenced from: /Library/Python/2.5/site-packages/Cheetah-2.4.2-
                >> py2.5-macosx-10.5-i386.egg/Cheetah/_namemapper.so
                >> Expected in: dynamic lookup
                >>
                >> thanks,
                >> Matthew
                >>
                > Cheers,
                > -R. Tyler Ballance
                > --------------------------------------
                > Jabber: rtyler@...
                > GitHub: http://github.com/rtyler
                > Twitter: http://twitter.com/agentdero
                > Blog: http://unethicalblogger.com
                >
                > ------------------------------------------------------------------------------
                > The Planet: dedicated and managed hosting, cloud storage, colocation
                > Stay online with enterprise data centers and the best network in the
                > business
                > Choose flexible plans and management services without long-term
                > contracts
                > Personal 24x7 support from experience hosting pros just a phone call
                > away.
                > http://p.sf.net/sfu/theplanet-com_______________________________________________
                > Cheetahtemplate-discuss mailing list
                > Cheetahtemplate-discuss@...
                > https://lists.sourceforge.net/lists/listinfo/cheetahtemplate-discuss


                ------------------------------------------------------------------------------
                Download Intel® Parallel Studio Eval
                Try the new software tools for yourself. Speed compiling, find bugs
                proactively, and fine-tune applications for parallel performance.
                See why Intel Parallel Studio got high marks during beta.
                http://p.sf.net/sfu/intel-sw-dev
                _______________________________________________
                Cheetahtemplate-discuss mailing list
                Cheetahtemplate-discuss@...
                https://lists.sourceforge.net/lists/listinfo/cheetahtemplate-discuss
              • R. Tyler Ballance
                ... Looks like this is another error I ve missed in the builds since we fall back to the pure Python Namemapper in case of error (relevant build output:
                Message 7 of 24 , Mar 9, 2010
                  On Tue, 09 Mar 2010, Michael Higgins wrote:

                  > Just downloaded the tarball from
                  > http://pypi.python.org/pypi/Cheetah/2.4.2.1 and I'm seeing similar
                  > compile problems to the ones reported below.
                  >
                  > I'm on OS X 10.5.8, using python 2.5.1. When I unpack the tarball
                  > and do python setup.py build, it spits out this:
                  >
                  > ...
                  > building 'Cheetah._namemapper' extension
                  > creating build/temp.macosx-10.5-i386-2.5
                  > creating build/temp.macosx-10.5-i386-2.5/cheetah
                  > creating build/temp.macosx-10.5-i386-2.5/cheetah/c
                  > gcc -fno-strict-aliasing -Wno-long-double -no-cpp-precomp
                  > -mno-fused-madd -fno-common -dynamic -DNDEBUG -g -Os -Wall
                  > -Wstrict-prototypes -DMACOSX -I/usr/include/ffi -DENABLE_DTRACE
                  > -arch i386 -arch ppc -pipe -
                  > I/System/Library/Frameworks/Python.framework/Versions/2.5/include/
                  > python2.5 -c cheetah/c/_namemapper.c -o build/temp.macosx-10.5-
                  > i386-2.5/cheetah/c/_namemapper.o
                  > cheetah/c/_namemapper.c: In function ?setNotFoundException?:
                  > cheetah/c/_namemapper.c:38: warning: implicit declaration of
                  > function ?PyUnicode_FromFormat?
                  > cheetah/c/_namemapper.c:38: warning: assignment makes pointer from
                  > integer without a castcheetah/c/_namemapper.c: In function
                  > ?setNotFoundException?:
                  > cheetah/c/_namemapper.c:38: warning: implicit declaration of
                  > function ?PyUnicode_FromFormat?
                  > cheetah/c/_namemapper.c:38: warning: assignment makes pointer from
                  > integer without a cast
                  >
                  > cheetah/c/_namemapper.c: In function
                  > ?wrapInternalNotFoundException?:cheetah/c/_namemapper.c: In function
                  > ?wrapInternalNotFoundException?:
                  > cheetah/c/_namemapper.c:62: warning: assignment makes pointer from
                  > integer without a cast
                  > cheetah/c/_namemapper.c:62: warning: assignment makes pointer from
                  > integer without a cast
                  >
                  > gcc -Wl,-F. -bundle -undefined dynamic_lookup -arch i386 -arch ppc
                  > build/temp.macosx-10.5-i386-2.5/cheetah/c/_namemapper.o -o build/
                  > lib.macosx-10.5-i386-2.5/Cheetah/_namemapper.so
                  > ...
                  >
                  > and then the C version of the namemapper doesn't import because of
                  > missing symbols.


                  Looks like this is another error I've missed in the builds since we fall back
                  to the pure Python Namemapper in case of error (relevant build output:
                  http://hudson.brokenco.de/job/Cheetah__Next/label=Mac,namemapper=purepython,python=python25/19/console
                  )

                  I'll take a look at this this evening if I have the bandwidth :)

                  >
                  > Is there another build out there that fixes this, or is it still in
                  > the pipeline?
                  >
                  > (And thanks for all your hard work! Cheetah is great!)
                  >
                  > Mike
                  >
                  >
                  >
                  > On Feb 1, 2010, at 10:53 PM, R. Tyler Ballance wrote:
                  >
                  > >
                  > >On Tue, 02 Feb 2010, Matthew Beauregard wrote:
                  > >
                  > >>>Your workaround is fine, but you might want to look into why
                  > >>>you're not using
                  > >>>the compiled namemapper
                  > >>
                  > >>Actually, yeah, that's just bit me. There is (and has been for
                  > >>years) a difference between the C and Python NameMappers that my
                  > >>code triggers so parts of it only work with the C mapper. That's
                  > >>been fine until now when I'm trying to build from git/next.
                  > >
                  > >Ah yes indeed, this is another thing I've messed up in the next
                  > >branch and
                  > >haven't had a chance to fix yet :)
                  > >
                  > >I made a good chunk of changes without checking Hudson to see how
                  > >they were
                  > >performing on other versions of Python and other platforms. This
                  > >past weekend I
                  > >went back to Hudson and realized my error.
                  > >
                  > >You can check out the current build results here:
                  > > http://avocado.monkeypox.org:8080/job/Cheetah_next/
                  > >
                  > >My apologies, I typically work under Python 2.6 so I was
                  > >completely oblivious
                  > >to the breakages on Python 2.4 and 2.5
                  > >
                  > >I'll probably fix it tonight or tomorrow sometime; I'll update the
                  > >thread when
                  > >it's there
                  > >
                  > >>
                  > >>From what I can see the compiled mapper isn't building right for me:
                  > >>
                  > >>gcc -fno-strict-aliasing -Wno-long-double -no-cpp-precomp
                  > >>-mno-fused-madd -fno-common -dynamic -DNDEBUG -g -Os -Wall
                  > >>-Wstrict-prototypes -DMACOSX -I/usr/include/ffi -DENABLE_DTRACE
                  > >>-arch i386 -arch ppc -pipe -
                  > >>I/System/Library/Frameworks/Python.framework/Versions/2.5/include/
                  > >>python2.5 -c cheetah/c/_namemapper.c -o build/temp.macosx-10.5-
                  > >>i386-2.5/cheetah/c/_namemapper.o
                  > >>cheetah/c/_namemapper.c: In function ?setNotFoundException?:
                  > >>cheetah/c/_namemapper.c:38: warning: implicit declaration of
                  > >>function ?PyUnicode_FromFormat?
                  > >>cheetah/c/_namemapper.c:38: warning: assignment makes pointer from
                  > >>integer without a cast
                  > >>cheetah/c/_namemapper.c: In function ?setNotFoundException?:
                  > >>cheetah/c/_namemapper.c:38: warning: implicit declaration of
                  > >>function ?PyUnicode_FromFormat?
                  > >>cheetah/c/_namemapper.c:38: warning: assignment makes pointer from
                  > >>integer without a cast
                  > >>cheetah/c/_namemapper.c: In function ?wrapInternalNotFoundException?:
                  > >>cheetah/c/_namemapper.c:62: warning: assignment makes pointer from
                  > >>integer without a cast
                  > >>cheetah/c/_namemapper.c: In function ?wrapInternalNotFoundException?:
                  > >>cheetah/c/_namemapper.c:62: warning: assignment makes pointer from
                  > >>integer without a cast
                  > >>
                  > >>So then I get:
                  > >>
                  > >>>>>from Cheetah._namemapper import NotFound, valueForKey,
                  > >>>>>valueForName
                  > >>Traceback (most recent call last):
                  > >> File "<stdin>", line 1, in <module>
                  > >>ImportError: dlopen(/Library/Python/2.5/site-packages/Cheetah-2.4.2-
                  > >>py2.5-macosx-10.5-i386.egg/Cheetah/_namemapper.so, 2): Symbol not
                  > >>found: _PyUnicode_FromFormat
                  > >> Referenced from: /Library/Python/2.5/site-packages/Cheetah-2.4.2-
                  > >>py2.5-macosx-10.5-i386.egg/Cheetah/_namemapper.so
                  > >> Expected in: dynamic lookup
                  > >>
                  > >>thanks,
                  > >>Matthew
                  > >>
                  > >Cheers,
                  > >-R. Tyler Ballance
                  > >--------------------------------------
                  > >Jabber: rtyler@...
                  > >GitHub: http://github.com/rtyler
                  > >Twitter: http://twitter.com/agentdero
                  > > Blog: http://unethicalblogger.com
                  > >
                  > >------------------------------------------------------------------------------
                  > >The Planet: dedicated and managed hosting, cloud storage, colocation
                  > >Stay online with enterprise data centers and the best network in
                  > >the business
                  > >Choose flexible plans and management services without long-term
                  > >contracts
                  > >Personal 24x7 support from experience hosting pros just a phone
                  > >call away.
                  > >http://p.sf.net/sfu/theplanet-com_______________________________________________
                  > >Cheetahtemplate-discuss mailing list
                  > >Cheetahtemplate-discuss@...
                  > >https://lists.sourceforge.net/lists/listinfo/cheetahtemplate-discuss
                  >
                  Cheers,
                  -R. Tyler Ballance
                  --------------------------------------
                  Jabber: rtyler@...
                  GitHub: http://github.com/rtyler
                  Twitter: http://twitter.com/agentdero
                  Blog: http://unethicalblogger.com
                Your message has been successfully submitted and would be delivered to recipients shortly.