Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.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 Mod_python错误:ImportError:无法导入设置_Django_Apache_Mod Python - Fatal编程技术网

Django Mod_python错误:ImportError:无法导入设置

Django Mod_python错误:ImportError:无法导入设置,django,apache,mod-python,Django,Apache,Mod Python,试图让Django与Apache一起工作,我遇到以下错误: ImportError:无法导入设置“MyDjangoApp.settings”(是否在sys.path上?是否有语法错误?):没有名为MyDjangoApp.settings的模块 My Django应用程序位于/home/user/Django/MyDjangoApp中/ 我的httpd.conf位置部分如下所示: <Location "/MyDjangoApp/"> SetHandler python-progra

试图让Django与Apache一起工作,我遇到以下错误:

ImportError:无法导入设置“MyDjangoApp.settings”(是否在sys.path上?是否有语法错误?):没有名为MyDjangoApp.settings的模块

My Django应用程序位于/home/user/Django/MyDjangoApp中/

我的httpd.conf位置部分如下所示:

<Location "/MyDjangoApp/">
  SetHandler python-program
  PythonHandler django.core.handlers.modpython
  SetEnv DJANGO_SETTINGS_MODULE MKSearch.settings
  PythonOption django.root /MyDjangoApp
  PythonPath "['/home/user/django/MyDjangoApp/','/var/www'] + sys.path" 
  PythonDebug On
</Location>

SetHandler python程序
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_设置_模块MKSearch.SETTINGS
PythonOption django.root/MyDjangoApp
PythonPath“['/home/user/django/MyDjangoApp/”,'/var/www']+sys.path”
蟒蛇

请告诉我如何更正位置部分以使Django正常工作?

我认为mod_python正在寻找MKSearch模块中的设置,该模块不存在于/home/user/Django/MyDjangoApp目录中。尝试将父目录添加到PythonPath指令,如下所示:

<Location "/MyDjangoApp/">
  SetHandler python-program
  PythonHandler django.core.handlers.modpython
  SetEnv DJANGO_SETTINGS_MODULE MKSearch.settings
  PythonOption django.root /MyDjangoApp
  PythonPath "['/home/user/django/', '/home/user/django/MyDjangoApp,'/var/www'] + sys.path" 
  PythonDebug On
</Location>
<Location "/MyDjangoApp/">
  SetHandler python-program
  PythonHandler django.core.handlers.modpython
  SetEnv DJANGO_SETTINGS_MODULE settings
  PythonOption django.root /MyDjangoApp
  PythonPath "['/home/user/django/MyDjangoApp,'/var/www'] + sys.path" 
  PythonDebug On
</Location>

SetHandler python程序
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_设置_模块MKSearch.SETTINGS
PythonOption django.root/MyDjangoApp
PythonPath“['/home/user/django/”,'/home/user/django/MyDjangoApp'/var/www']+sys.path”
蟒蛇
或从DJANGO_设置_模块环境变量中删除模块名称,如下所示:

<Location "/MyDjangoApp/">
  SetHandler python-program
  PythonHandler django.core.handlers.modpython
  SetEnv DJANGO_SETTINGS_MODULE MKSearch.settings
  PythonOption django.root /MyDjangoApp
  PythonPath "['/home/user/django/', '/home/user/django/MyDjangoApp,'/var/www'] + sys.path" 
  PythonDebug On
</Location>
<Location "/MyDjangoApp/">
  SetHandler python-program
  PythonHandler django.core.handlers.modpython
  SetEnv DJANGO_SETTINGS_MODULE settings
  PythonOption django.root /MyDjangoApp
  PythonPath "['/home/user/django/MyDjangoApp,'/var/www'] + sys.path" 
  PythonDebug On
</Location>

SetHandler python程序
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_设置_模块设置
PythonOption django.root/MyDjangoApp
PythonPath“['/home/user/django/MyDjangoApp'/var/www']+sys.path”
蟒蛇

给出完整的答案-即使您的情况不同

我曾经将我的django项目命名为
test
。django导入了python模块测试,这是一个回归测试模块,与我的项目无关


如果python发现另一个模块与django项目同名,则会发生此错误。以不同的方式命名项目,或将应用程序的父目录的路径前置到sys.path。

以下示例位于我的Apache配置文件中,有效。我发现很难让mod_python工作,尽管人们给出了很好的答案。在大多数情况下,我收到的评论都说使用mod_wsgi,而不是mod_python

我看到的评论包括波士顿Python会议上的all concur mod_wsgi更易于使用。在我关于Red Hat EL 5 WS的例子中,从mod_python更改是不实际的

<Location />
        SetHandler python-program
        PythonHandler django.core.handlers.modpython
        SetEnv DJANGO_SETTINGS_MODULE settings
        PythonOption django.root /home/amr/django/amr
        PythonPath "['/home/amr/django', '/home/amr/django/amr', '/usr/local/lib
/site-packages/django'] + sys.path"
        PythonDebug On
</Location>

SetHandler python程序
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_设置_模块设置
PythonOption django.root/home/amr/django/amr
PythonPath“['/home/amr/django','/home/amr/django/amr','/usr/local/lib”
/站点包/django']+sys.path”
蟒蛇

+1 django文档掩盖了“/home/user/django”(它允许“从MyDjangoApp导入foo”)和备选方案之间的差异。从设置前面删除模块名称解决了我的问题。呸!正是发生在我身上的事。谢谢这也是我的问题。我有一个名为test的临时区域,该名称与内置包冲突。这似乎很常见,Django可能应该给它一个特殊的错误消息。