Pandas + Django + mod_wsgi + virtualenv
Question: Pandas is producing **'module' object has no attribute 'core'** when being
imported under django and mod_wsgi inside a virtual environment. It works fine
running under the django development server inside the virtual environment.

Other modules e.g.: numpy have no problems so I assume this means the virtual
environment is set up correctly with mod_wsgi. Any advice would be
appreciated.

### staging.wsgi

    
    
    import os
    import sys
    import site
    
    PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
    site_packages = os.path.join(PROJECT_ROOT, 'env/openportfolio/lib/python2.7/site-packages')
    site.addsitedir(os.path.abspath(site_packages))
    sys.path.insert(0, PROJECT_ROOT)
    sys.path.insert(0, os.path.dirname(os.path.dirname(__file__)))
    os.environ['DJANGO_SETTINGS_MODULE'] = 'openportfolio.settings_staging'
    
    import pandas #triggers error
    import django.core.handlers.wsgi
    application = django.core.handlers.wsgi.WSGIHandler()
    

### Error

    
    
    Traceback (most recent call last):
      File "/usr/local/web/django/www/staging/openportfolio/apache/staging.wsgi", line 22, in <module>
        import pandas
      File "/usr/local/web/django/www/staging/env/openportfolio/lib/python2.7/site-packages/pandas/__init__.py", line 12, in <module>
        from pandas.core.api import *
      File "/usr/local/web/django/www/staging/env/openportfolio/lib/python2.7/site-packages/pandas/core/api.py", line 6, in <module>
        import pandas.core.datetools as datetools
      AttributeError: 'module' object has no attribute 'core'  
    

### Python Path

    
    
    ['/usr/local/web/django/www/staging/openportfolio',
     '/usr/local/web/django/www/staging',
     '/Library/Python/2.7/site-packages/pip-1.0.2-py2.7.egg',
     '/usr/local/web/django/www/staging/env/openportfolio/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg',
     '/usr/local/web/django/www/staging/env/openportfolio/lib/python2.7/site-packages/pip-1.0.2-py2.7.egg',
     '/usr/local/web/django/www/staging/env/openportfolio/lib/python2.7/site-packages/matplotlib-1.1.0-py2.7-macosx-10.7-intel.egg',
     '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip',
     '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
     '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
     '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
     '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
     '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python',
     '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
     '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old',
     '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload',
     '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC',
     '/Library/Python/2.7/site-packages',
     '/usr/local/web/django/www/staging/env/openportfolio/lib/python2.7/site-packages']
    


Answer: So it turns out this was a Python path order issue. By running
sys.path.reverse() in my wsgi config file, the code now runs.

Due to the order of Python path, the built in OS X numpy library must have
been imported first over the virtual environment one causing the issue.

'RuntimeError: module compiled against API version 6 but this version of numpy
is 4' was the error line I missed in my original post which could have helped
debug the answer.

