Python Django+;mod#wsgi+;apache:importErrorat/No名为djproj.url的模块

Python Django+;mod#wsgi+;apache:importErrorat/No名为djproj.url的模块,python,django,importerror,django-wsgi,Python,Django,Importerror,Django Wsgi,我正在尝试使用apache和mod_wsgi在linode服务器上部署Django应用程序 文件:/srv/www/example.com/djproj/django.wsgi import os import sys sys.path.append('/srv/www/example.com/djproj') os.environ['PYTHON_EGG_CACHE'] = '/srv/www/example.com/.python-egg' os.environ['DJANGO_SETT

我正在尝试使用apache和mod_wsgi在linode服务器上部署Django应用程序

文件:/srv/www/example.com/djproj/django.wsgi

import os
import sys

sys.path.append('/srv/www/example.com/djproj')

os.environ['PYTHON_EGG_CACHE'] = '/srv/www/example.com/.python-egg'
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
文件:/etc/apache2/sites available/example.com

/etc/apache2/sites-available/example.com
ServerAdmin admin@example.com
ServerName example.com
ServerAlias www.example.com

DocumentRoot /srv/www/example.com/public_html

WSGIScriptAlias / /srv/www/example.com/djproj/django.wsgi

<Directory "/srv/www/example.com/djproj">
   Order allow,deny
   Allow from all
</Directory>

ErrorLog /srv/www/example.com/logs/error.log 
CustomLog /srv/www/example.com/logs/access.log combined

我不能让它工作。想法?

或者更改所有模块/包条目和导入以排除项目名称,或者将
/srv/www/site.com
也放在
sys.path
中。

如果你有
djproj.url
可以尝试一下
url

我第二个Ignacio Vazquez Abrams。必须将项目目录的路径及其父目录的路径添加到
sys.path
。下面是我使用的WSGI脚本文件的一个示例。我将文件保存在项目目录中

import os
import sys

sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "../../")))
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "../")))

os.environ["DJANGO_SETTINGS_MODULE"] = "PROJECT_NAME.settings"

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

支持阿亚兹的回答。指定的路径必须位于搜索路径的开头,这一点很重要,这意味着您需要使用insert

这是我的。当我在做“附加”时,我遇到了间歇性问题。这使它坚如磐石。希望这有帮助

sys.path.insert(0, '/srv/www/Appname')
sys.path.insert(1, '/srv/www')

是什么为我纠正了这个错误--

从以下位置更改settings.py:

ROOT_URLCONF='url'

为此:


ROOT_URLCONF='myproject.url'

尝试遵循本教程-

确保将Django目录和Django项目目录都添加到系统路径。您的wsgi.py应该如下所示

import os,sys

#comments
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "django_project.settings")
sys.path.append('/path/to/your/django/directory/django_project')
sys.path.append('/path/to/your/django/directory')

#comments
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

这也是我的问题。为什么他妈的没有在文档中提到这个呢!!!!!!!!!!我认为您只需要指定DJANGO_SETTINGS_模块,DJANGO就会处理其余的部分。请注意,路径实际上应该是“/srv/www/site.com”,因为这与询问者提出的问题相匹配。在呈现时获取
捕获的variabledesnotexist:u'[]中的键[0]的查找失败“
在尝试插入(或附加)
。/../
&
。/
到路径时,哇,你是我的英雄,已经为此奋斗了3个小时,没有想到要把东西移到路径列表的更高位置。我希望我能投更多的票!你救了我的命!该死我花了两天时间寻找这个解决方案。谢谢你,伙计!非常感谢。在过去的4-5个小时里,我一直在撞墙!!这也是我心中的一根刺。这就是原因。我不得不搜索(egrep)我的整个网站,以找出它试图从哪里获取URL文件。这可能刚刚救了我的命和几个小时的疑难解答。
import os,sys

#comments
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "django_project.settings")
sys.path.append('/path/to/your/django/directory/django_project')
sys.path.append('/path/to/your/django/directory')

#comments
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()