i got this error: "ImportError: cannot import name python" How do I fix it?
Question: 
    File "G:\Python25\Lib\site-packages\PyAMF-0.6b2-py2.5-win32.egg\pyamf\util\__init__.py", line 15, in <module>
    ImportError: cannot import name python
    

How do I fix it? If you need any info to know how to fix this problem, I can
explain, just ask.

Thanks

Code:

    
    
    from google.appengine.ext.webapp.util import run_wsgi_app
    from google.appengine.ext import webapp
    from TottysGateway import TottysGateway
    import logging
    
    def main():
        services_root = 'services'
        #services = ['users.login']
    
        #gateway = TottysGateway(services, services_root, logger=logging, debug=True)
    
        #app = webapp.WSGIApplication([('/', gateway)], debug=True)
    
        #run_wsgi_app(app)
    
    if __name__ == "__main__":
        main()
    

Code:

    
    
    from pyamf.remoting.gateway.google import WebAppGateway
    import logging
    
    
    class TottysGateway(WebAppGateway):
        def __init__(self, services_available, root_path, not_found_service, logger, debug):
            # override the contructor and then call the super
            self.services_available = services_available
            self.root_path = root_path
            self.not_found_service = not_found_service
            WebAppGateway.__init__(self, {}, logger=logging, debug=True)
    
        def getServiceRequest(self, request, target):
            # override the original getServiceRequest method
            try:
                # try looking for the service in the services list
                return WebAppGateway.getServiceRequest(self, request, target)
            except:
                pass
    
            try:
                # don't know what it does but is an error for now
                service_func = self.router(target)
            except:
                if(target in self.services_available):
                    # only if is an available service import it's module
                    # so it doesn't access services that should be hidden
                    try:
                        module_path = self.root_path + '.' + target
                        paths = target.rsplit('.')
                        func_name = paths[len(paths) - 1]
                        import_as = '_'.join(paths) + '_' + func_name
                        import_string = "from "+module_path+" import "+func_name+' as service_func'
                        exec import_string
                    except:
                        service_func = False
    
            if(not service_func):
                # if is not found load the default not found service
                module_path = self.rootPath + '.' + self.not_found_service
                import_string = "from "+module_path+" import "+func_name+' as service_func'
    
            # add the service loaded above
            assign_string = "self.addService(service_func, target)"
            exec assign_string
    
            return WebAppGateway.getServiceRequest(self, request, target)
    


Answer: You need to post your full traceback. What you show here isn't all that
useful. I ended up digging up line 15 of pyamf/util/**init**.py. The code you
should have posted is

    
    
    from pyamf import python
    

This should not fail unless your local environment is messed up.

Can you 'import pyamf.util' and 'import pyamf.python' in a interactive Python
shell? What about if you start Python while in /tmp (on the assumption that
you might have a file named 'pyamf.py' in the current directory. Which is a
bad thing.)

= (older comment below) =

Fix your question. I can't even tell where line 15 of util/__init__.py is
supposed to be. Since I can't figure that out, I can't answer your question.
Instead, I'll point out ways to improve your question and code.

First, use the markup language correctly, so that all the code is in a code
block. Make sure you've titled the code, so we know it's from util/__init__.py
and not some random file.

In your error message, include the _full_ traceback, and not the last two
lines.

Stop using parens in things like "if(not service_func):" and use a space
instead, so its " if not service_func:". This is discussed in [PEP
8](http://www.python.org/dev/peps/pep-0008/).

Read the Python documentation and learn how to use the language. Something
like "func_name = paths[len(paths) - 1]" should be "func_name = paths[-1]"

Learn about the
[**import**](http://docs.python.org/library/functions.html#__import__)
function and don't use "exec" for this case. Nor do you need the "exec
assign_string" -- just do the "self.addService(service_func, target)"

