Thanks for letting us know. The new custom_import actually works (the old one did not) so it will pick conflicts that before were not picked.
On Tuesday, 6 November 2012 11:14:28 UTC-6, Neil wrote: > > 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? >>>>>>>>>>> >>>>>>>>>>> --