Django Mod_python错误:ImportError:无法导入设置
试图让Django与Apache一起工作,我遇到以下错误: ImportError:无法导入设置“MyDjangoApp.settings”(是否在sys.path上?是否有语法错误?):没有名为MyDjangoApp.settings的模块 My Django应用程序位于/home/user/Django/MyDjangoApp中/ 我的httpd.conf位置部分如下所示: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
<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可能应该给它一个特殊的错误消息。