Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 668365
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 14, 20262026-05-14T00:01:54+00:00 2026-05-14T00:01:54+00:00

I’m running CentOS 5, and am trying to get a django application working with

  • 0

I’m running CentOS 5, and am trying to get a django application working with mod_wsgi. I’m using .wsgi settings I got working on Ubuntu. I’m also using an alternate installation of python (/opt/python2.6/) since my django application needs >2.5 and the OS uses 2.3

Here is the error:

[Thu Mar 04 10:52:15 2010] [error] [client 10.1.0.251] SystemError: dynamic module not initialized properly
[Thu Mar 04 10:52:15 2010] [error] [client 10.1.0.251] mod_wsgi (pid=23630): Target WSGI script '/data/hosting/cubedev/apache/django.wsgi' cannot be loaded as Python module.
[Thu Mar 04 10:52:15 2010] [error] [client 10.1.0.251] mod_wsgi (pid=23630): Exception occurred processing WSGI script '/data/hosting/cubedev/apache/django.wsgi'.
[Thu Mar 04 10:52:15 2010] [error] [client 10.1.0.251] Traceback (most recent call last):
[Thu Mar 04 10:52:15 2010] [error] [client 10.1.0.251]  File "/data/hosting/cubedev/apache/django.wsgi", line 8, in 
[Thu Mar 04 10:52:15 2010] [error] [client 10.1.0.251]    import django.core.handlers.wsgi
[Thu Mar 04 10:52:15 2010] [error] [client 10.1.0.251]  File "/opt/python2.6/lib/python2.6/site-packages/django/core/handlers/wsgi.py", line 1, in 
[Thu Mar 04 10:52:15 2010] [error] [client 10.1.0.251]    from threading import Lock
[Thu Mar 04 10:52:15 2010] [error] [client 10.1.0.251]  File "/opt/python2.6/lib/python2.6/threading.py", line 13, in 
[Thu Mar 04 10:52:15 2010] [error] [client 10.1.0.251]    from functools import wraps
[Thu Mar 04 10:52:15 2010] [error] [client 10.1.0.251]  File "/opt/python2.6/lib/python2.6/functools.py", line 10, in 
[Thu Mar 04 10:52:15 2010] [error] [client 10.1.0.251]    from _functools import partial, reduce
[Thu Mar 04 10:52:15 2010] [error] [client 10.1.0.251] SystemError: dynamic module not initialized properly

And here is my .wsgi file

import os
import sys
os.environ['PYTHON_EGG_CACHE'] = '/tmp/django/' # This line was added for CentOS.
os.environ['DJANGO_SETTINGS_MODULE'] = 'cube.settings'

sys.path.append('/data/hosting/cubedev')

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

output of ldd /usr/lib/httpd/modules/mod_wsgi.so

linux-gate.so.1 =>  (0x00250000)
libpython2.6.so.1.0 => /opt/python2.6/lib/libpython2.6.so.1.0 (0x00be6000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00110000)
libdl.so.2 => /lib/libdl.so.2 (0x00557000)
libutil.so.1 => /lib/libutil.so.1 (0x00128000)
libm.so.6 => /lib/libm.so.6 (0x0012c000)
libc.so.6 => /lib/libc.so.6 (0x00251000)
/lib/ld-linux.so.2 (0x0039a000)

vhost config

<VirtualHost *:80>
    ServerAdmin admin@example.com
    ServerAlias cube-dev.example.com
    ServerName  cube-dev.example.com
    ErrorLog logs/cube-dev.example.com.error_log
    CustomLog logs/cube-dev.example.com.access_log common
    Alias /phpMyAdmin /var/www/phpMyAdmin/
   # DocumentRoot /data/hosting/cubedev

    WSGIScriptAlias / /data/hosting/cubedev/apache/django.wsgi

    WSGIProcessGroup cubedev.example.com
    WSGIDaemonProcess cubedev.example.com

    Alias /media/ /data/hosting/cubedev/media/
    Alias /adminmedia/  /opt/python2.6/lib/python2.6/site-packages/django/contrib/admin/media/
    Alias /media /data/hosting/cubedev/media

   <Directory "/data/hosting/cubedev/media">
     Order deny,allow
     Allow from all
    </Directory>
</VirtualHost>
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-14T00:01:54+00:00Added an answer on May 14, 2026 at 12:01 am

    SystemError: dynamic module not initialized properly is the exception that is thrown when a dll (or .so) that is being loaded cannot be properly initialized. In function _PyImport_LoadDynamicModule of Python/importdl.c in case anyone is interested.

    Now, the dll/so in question (the dynamic module in Python parliance) is _functools.so which is part of Python standard library. I see that it is being loaded from /opt/python2.6 so we know that this is not the system python. My guess is that this is not the python against which mod_wsgi was compiled. To check whether this is the case run ldd mod_wsgi.so and look at what libpython is returned.

    Therefore my suggestion is either to recompile mod_wsgi againast the interpreter in /opt/python2.6 by running in the wsgi_mod source directory

    ./configure --with-python=/opt/python2.6/bin/python2.6
    

    or make sure that sys.prefix points to the python installation that mod_wsgi expects by setting its value with the WSGIPythonHome directory.

    UPDATE after ldd output

    The second line in the ldd output shows that mod_wsgi loads the pythonlib in /usr/lib instead of /opt/python2.6. To instruct mod_wsgi to load that in /opt/python2.6 you should probably prepend it to the LD_LIBRARY_PATH envirnoment variable.

    Try it first on the command line:

    LD_LIBRARY_PATH=/opt/python2.6/lib:$LD_LIBRARY_PATH ldd mod_wsgi.so
    

    and then make sure that the correct LD_LIBRARY_PATH is specified in the script that starts Apache.

    Yet another update

    You’ll have to debug your mod_wsgi configuration. Just try with the following .wsgi file in place of yours and tell us what you get:

    def application(environ, start_response):
        status = '200 OK'
        start_response(status, [('Content-type', 'text/plain')])
    
        try:
            import sys
            return ['\n'.join([sys.prefix, sys.executable])]
        except:
            import traceback as tb
            return [tb.format_exc()]
    

    If what you get is not `/opt/python2.6′, try with the option

    WSGIPythonHome /opt/python2.6
    

    See also http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

No related questions found

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.