Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 无法在openSuse服务器中加载WSGI脚本_Django_Mod Wsgi_Wsgi_Django Wsgi - Fatal编程技术网

Django 无法在openSuse服务器中加载WSGI脚本

Django 无法在openSuse服务器中加载WSGI脚本,django,mod-wsgi,wsgi,django-wsgi,Django,Mod Wsgi,Wsgi,Django Wsgi,该错误仅出现在openSuse服务器12.3 x64(最小安装)中。同样的代码和同样的apache设置在Ubuntu发行版中起着类似的作用。运行django项目时出现几个错误 错误:访问页面url时出现“500内部服务器错误” Python环境信息: mod_wsgi设置 我的问题的解决方案与Python在openSuse Server 12.3中的安装方式(预安装)以及它如何符合mod_wsgi安装有关 我如何找到解决方案 我知道的事实。该项目在Ubuntu环境下工作,在openSuse上不工

该错误仅出现在openSuse服务器12.3 x64(最小安装)中。同样的代码和同样的apache设置在Ubuntu发行版中起着类似的作用。运行django项目时出现几个错误

错误:访问页面url时出现“500内部服务器错误” Python环境信息:

mod_wsgi设置
我的问题的解决方案与Python在openSuse Server 12.3中的安装方式(预安装)以及它如何符合mod_wsgi安装有关

我如何找到解决方案 我知道的事实。该项目在Ubuntu环境下工作,在openSuse上不工作。因此,必须有一些与源代码相关的外部因素阻止它工作。唯一的外在因素是环境。我在谷歌上搜索了与“目标WSGI脚本未加载为Python模块”、“RuntimeError(“populate()不可重入”)相关的错误,并找到了一系列与mod_WSGI相关的帖子。最后,Graham Dumpleton给出了最合理的答案

更深入地讲,我在段落中发现了缺少Python共享库的附加信息。安装问题中显示的ldd命令的输出与我的mod_wsgi.so文件的输出不同。这使我认为openSuse中预安装的Python没有使用共享库在这里,我决定安装Python表单源代码

解决方案实现
  • 首先,我删除了在openSuse中创建的python安装的所有痕迹

    zypper rm python 
    zypper rm python-base
    zypper rm python-distribute
    zypper rm libpython
    
  • 从源代码处安装Python。在此之后,请记住添加——启用共享标志,正如Graham在安装问题中提到的那样

  • 我安装了与project相关的requirements.txt,并重新启动了系统。重新启动apache无法解决此问题

  • 这些是解决我的问题的步骤。我希望这能帮你省下一些白发


    一直以来,我在从源代码安装Python时遇到了一些小问题,但这些问题很容易通过谷歌搜索得到并在途中得到解决。

    manage.py可以解决吗?它不起作用它抛出“ImportError:无法导入名称信号”“从django.test import signalsRight,您有一个更简单的问题。从混合中删除apache。从基本的manage.py开始,但首先,您为什么要从django.test导入内容?编辑问题,执行manage.py runserver并直接发布stacktrace(不是作为要点),并根据需要更改标记,您将获得更好的响应。从django.test导入内容是在运行django项目时执行的内部导入(
    Traceback (most recent call last):
      File "/srv/www/compare/htdocs/config/apache/wsgi.py", line 28, in <module>
        application = get_wsgi_application()
      File "/usr/lib/python2.7/site-packages/django/core/wsgi.py", line 14, in get_wsgi_application
        django.setup()
      File "/usr/lib/python2.7/site-packages/django/__init__.py", line 18, in setup
        apps.populate(settings.INSTALLED_APPS)
      File "/usr/lib/python2.7/site-packages/django/apps/registry.py", line 85, in populate
        app_config = AppConfig.create(entry)
      File "/usr/lib/python2.7/site-packages/django/apps/config.py", line 112, in create
        mod = import_module(mod_path)
      File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module
        __import__(name)
      File "/usr/lib/python2.7/site-packages/debug_toolbar/apps.py", line 6, in <module>
        from debug_toolbar import settings as dt_settings
      File "/usr/lib/python2.7/site-packages/debug_toolbar/settings.py", line 8, in <module>
        from debug_toolbar.compat import import_module
      File "/usr/lib/python2.7/site-packages/debug_toolbar/compat.py", line 39, in <module>
        from django.test import (  # NOQA
      File "/usr/lib/python2.7/site-packages/django/test/__init__.py", line 5, in <module>
        from django.test.client import Client, RequestFactory
      File "/usr/lib/python2.7/site-packages/django/test/client.py", line 22, in <module>
        from django.test import signals
    ImportError: cannot import name signals
    
    <VirtualHost *:80>
      ServerName compare.django
    
      DocumentRoot /srv/www/compare/htdocs
      ErrorLog /srv/www/compare/log/error.log
      CustomLog /srv/www/compare/log/custom.log combined
    
      WSGIDaemonProcess compare python-path=/srv/www/compare/htdocs:/usr/lib/python2.7/site-packages processes=2 threads=5
    
      WSGIScriptAlias / /srv/www/compare/htdocs/config/apache/wsgi.py
      <Directory /srv/www/compare/htdocs>
          <Files wsgi.py>
            #Require all granted
            Order deny,allow
            Allow from all
          </Files>
      </Directory>
    
      <Directory /srv/www/compare/htdocs/config/apache>
          WSGIProcessGroup compare
          #Require all granted
          Order deny,allow
          Allow from all
      </Directory>
    
      Alias /static/ /srv/www/compare/htdocs/static/
      <Directory /srv/www/compare/htdocs/static>
          #Require all granted
          Order deny,allow
          Allow from all
      </Directory>
    
      Alias /storage/ /srv/www/compare/htdocs/storage/
      <Directory /srv/www/compare/htdocs/storage>
          #Require all granted
          Order deny,allow
          Allow from all
      </Directory>
    
    </VirtualHost>
    
    import os, sys
    from django.core.wsgi import get_wsgi_application
    
    # Calculate the path based on the location of the WSGI script.
    apache_configuration = os.path.dirname(__file__)
    project = os.path.dirname(apache_configuration)
    workspace = os.path.dirname(project)
    
    sys.path.append(workspace)
    sys.path.append(project)
    
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings")
    application = get_wsgi_application()
    
    $ldd /usr/lib64/apache2/mod_wsgi.so 
    linux-vdso.so.1 (0x00007fff67947000)
    libpython2.7.so.1.0 => /usr/lib64/libpython2.7.so.1.0 (0x00007f698c085000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f698be69000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f698babb000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f698b8b7000)
    libutil.so.1 => /lib64/libutil.so.1 (0x00007f698b6b4000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f698b3b5000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f698c651000)
    
    python import sys, django
    print sys.prefix # '/usr'
    print sys.version # '2.7.3 (default, Apr 14 2012, 08:58:41) [GCC]'
    print sys.version_info # 'sys.version_info(major=2, minor=7, micro=3, releaselevel='final', serial=0)'
    print django.__file__ # '/usr/lib/python2.7/site-packages/django/__init__.pyc'
    
    zypper rm python 
    zypper rm python-base
    zypper rm python-distribute
    zypper rm libpython