Solved it. Your first intuition was correct - conflict in "modules", which I should have picked up on immediately with the additional debug info.
On Tuesday, November 6, 2012 4:26:30 PM UTC, Massimo Di Pierro wrote: > > I tried the same statements (on Mac) and I cannot reproduce the problem. > Anyway, note the logic: > > NATIVE_IMPORTER = __builtin__.__import__ > ... > def custom_importer(name, globals=None, locals=None, fromlist=None, > level=-1): > .... > return NATIVE_IMPORTER(name, globals, locals, fromlist, level) # line > 87 > > So basically the custom_importer is doing nothing but delegating the > native_importer (__builtin__.__import__) with the same arguments. > > If you have any idea please let me know. If you can give me access to the > server I can try some debugging. > > massimo > > On Tuesday, 6 November 2012 01:58:38 UTC-6, Neil wrote: >> >> It seems to be there, as I can import it from a normal python shell. Here >> is what I get from the web2py shell: >> >> >>> from matplotlib.projections.geo import AitoffAxes >> Traceback (most recent call last): >> File "<console>", line 1, in <module> >> File >> "/home/aicbt/webapps/alternate_config/web2py2.2.1/gluon/custom_import.py", >> line 87, in custom_importer >> return NATIVE_IMPORTER(name, globals, locals, fromlist, level) >> File >> "/home/aicbt/lib/python2.7/matplotlib-1.1.0-py2.7-linux-x86_64.egg/matplotlib/projections/__init__.py", >> >> line 1, in <module> >> from geo import AitoffAxes, HammerAxes, LambertAxes, MollweideAxes >> ImportError: cannot import name AitoffAxes >> >> Email me if you would like me to arrange access to the server for a >> faster debug cycle (unfortunately I'm a little too busy to investigate this >> myself at the moment). >> >> On Tuesday, November 6, 2012 4:43:39 AM UTC, Massimo Di Pierro wrote: >>> >>> can you do >>> >>> from matplotlib.projections.geo import AitoffAxes >>> >>> I assume it is there. >>> >>> On Monday, 5 November 2012 16:10:14 UTC-6, Neil wrote: >>>> >>>> No problem. Here is what I get: >>>> >>>> >>> import matplotlib.pylab >>>> Traceback (most recent call last): >>>> File "<console>", line 1, in <module> >>>> File >>>> "/home/aicbt/webapps/alternate_config/web2py2.2.1/gluon/custom_import.py", >>>> line 87, in custom_importer >>>> return NATIVE_IMPORTER(name, globals, locals, fromlist, level) >>>> File >>>> "/home/aicbt/lib/python2.7/matplotlib-1.1.0-py2.7-linux-x86_64.egg/matplotlib/pylab.py", >>>> >>>> line 221, in <module> >>>> from matplotlib import mpl # pulls in most modules >>>> File >>>> "/home/aicbt/webapps/alternate_config/web2py2.2.1/gluon/custom_import.py", >>>> line 87, in custom_importer >>>> return NATIVE_IMPORTER(name, globals, locals, fromlist, level) >>>> File >>>> "/home/aicbt/lib/python2.7/matplotlib-1.1.0-py2.7-linux-x86_64.egg/matplotlib/mpl.py", >>>> >>>> line 10, in <module> >>>> from matplotlib import figure >>>> File >>>> "/home/aicbt/webapps/alternate_config/web2py2.2.1/gluon/custom_import.py", >>>> line 87, in custom_importer >>>> return NATIVE_IMPORTER(name, globals, locals, fromlist, level) >>>> File >>>> "/home/aicbt/lib/python2.7/matplotlib-1.1.0-py2.7-linux-x86_64.egg/matplotlib/figure.py", >>>> >>>> line 29, in <module> >>>> from projections import projection_factory, get_projection_names, \ >>>> File >>>> "/home/aicbt/webapps/alternate_config/web2py2.2.1/gluon/custom_import.py", >>>> line 87, in custom_importer >>>> return NATIVE_IMPORTER(name, globals, locals, fromlist, level) >>>> File >>>> "/home/aicbt/lib/python2.7/matplotlib-1.1.0-py2.7-linux-x86_64.egg/matplotlib/projections/__init__.py", >>>> >>>> line 1, in <module> >>>> from geo import AitoffAxes, HammerAxes, LambertAxes, MollweideAxes >>>> ImportError: cannot import name AitoffAxes >>>> >>>> On Friday, November 2, 2012 3:48:53 PM UTC, Massimo Di Pierro wrote: >>>>> >>>>> I need your help. In gluon/custom_import.py can you replace >>>>> >>>>> except ImportError, e1: # line 84 >>>>> import_tb = sys.exc_info()[2] >>>>> try: >>>>> return NATIVE_IMPORTER(name, globals, locals, >>>>> fromlist, level) # line 87 >>>>> except ImportError, e3: >>>>> raise ImportError, e1, import_tb # there an import >>>>> error in the module >>>>> >>>>> with >>>>> >>>>> except ImportError, e1: # line 84 >>>>> import_tb = sys.exc_info()[2] >>>>> return NATIVE_IMPORTER(name, globals, locals, fromlist, >>>>> level) # line 87 >>>>> >>>>> and see what changes? >>>>> >>>>> >>>>> >>>>> On Friday, 2 November 2012 09:09:03 UTC-5, Neil wrote: >>>>>> >>>>>> Can't see any potential conflicts. I have the problem for both >>>>>> track_changes(True) and track_changes(False). When I import from shell: >>>>>> >>>>>> [aicbt@web331 web2py2.2.1]$ python web2py.py -S init >>>>>> web2py Web Framework >>>>>> Created by Massimo Di Pierro, Copyright 2007-2012 >>>>>> Version 2.2.1 (2012-10-21 16:57:04) stable >>>>>> Database drivers available: SQLite(sqlite3), MySQL(pymysql), >>>>>> MySQL(MySQLdb), PostgreSQL(psycopg2), PostgreSQL(pg8000), IMAP(imaplib) >>>>>> WARNING:web2py:import IPython error; use default python shell >>>>>> Python 2.7.3 (default, May 18 2012, 14:51:16) >>>>>> [GCC 4.4.6 20110731 (Red Hat 4.4.6-3)] on linux2 >>>>>> Type "help", "copyright", "credits" or "license" for more information. >>>>>> (InteractiveConsole) >>>>>> >>> import matplotlib.pylab >>>>>> Traceback (most recent call last): >>>>>> File "<console>", line 1, in <module> >>>>>> File >>>>>> "/home/aicbt/webapps/alternate_config/web2py2.2.1/gluon/custom_import.py", >>>>>> >>>>>> line 77, in custom_importer >>>>>> raise ImportError, 'Cannot import module %s' % str(e) >>>>>> ImportError: Cannot import module 'matplotlib' >>>>>> >>>>>> This shell command works with web2py version 2.1. Also, "import >>>>>> matplotlib" (without the pylab) works fine for 2.2.1. >>>>>> >>>>>> On Friday, November 2, 2012 1:22:03 PM UTC, Massimo Di Pierro wrote: >>>>>>> >>>>>>> Do you have anything in your app/modules/* that may conflict? Did >>>>>>> you set track_changes(True) or not? If you do web2py.py -S yourapp can >>>>>>> you >>>>>>> import form the web2py shell? >>>>>>> >>>>>>> On Friday, 2 November 2012 02:18:47 UTC-5, Neil wrote: >>>>>>>> >>>>>>>> A little more info: >>>>>>>> >>>>>>>> - On linux (works fine on Windows) >>>>>>>> - matplotlib is an egg in the lib directory >>>>>>>> - "import matplotlib" works, but "import matplotlib.pylab" doesn't >>>>>>>> - Has worked fine in every version up to 2.1 >>>>>>>> >>>>>>>> Any ideas for a workaround or to debug further? >>>>>>>> >>>>>>>> On Thursday, November 1, 2012 9:52:57 PM UTC, Massimo Di Pierro >>>>>>>> wrote: >>>>>>>>> >>>>>>>>> Where is matplotlib installed? >>>>>>>>> >>>>>>>>> On Thursday, 1 November 2012 15:51:14 UTC-5, Neil wrote: >>>>>>>>>> >>>>>>>>>> I just upgraded from 2.1 to 2.2.1, and I can no longer import >>>>>>>>>> matplotlib. I get the following error: >>>>>>>>>> >>>>>>>>>> ImportError: Cannot import module 'matplotlib' >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Is this related to the custom import? Perhaps it is the same as >>>>>>>>>> issue 1125? >>>>>>>>>> >>>>>>>>>> --

