Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.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
Python django和mod_wsgi的配置问题_Python_Django_Apache_Mod Wsgi - Fatal编程技术网

Python django和mod_wsgi的配置问题

Python django和mod_wsgi的配置问题,python,django,apache,mod-wsgi,Python,Django,Apache,Mod Wsgi,我在让django使用mod_wsgi在Apache2.2上工作时遇到了问题。 安装了Django,并且还安装了mod_wsgi。 我甚至可以在访问路径时看到404页面,并且可以登录到django管理员。 但如果我想安装标记模块,则会出现以下错误: Traceback (most recent call last): File "setup.py", line 49, in <module> version_tuple = __import__('tagging').VE

我在让django使用mod_wsgi在Apache2.2上工作时遇到了问题。 安装了Django,并且还安装了mod_wsgi。 我甚至可以在访问路径时看到404页面,并且可以登录到django管理员。 但如果我想安装标记模块,则会出现以下错误:

 Traceback (most recent call last):
   File "setup.py", line 49, in <module>
  version_tuple = __import__('tagging').VERSION
   File "/home/jim/django-tagging/tagging/__init__.py", line 3, in <module>
  from tagging.managers import ModelTaggedItemManager, TagDescriptor
   File "/home/jim/django-tagging/tagging/managers.py", line 5, in <module>
  from django.contrib.contenttypes.models import ContentType
   File "/usr/lib/python2.5/site-packages/django/contrib/contenttypes/models.py", line 1, in <module>
  from django.db import models
   File "/usr/lib/python2.5/site-packages/django/db/__init__.py", line 10, in <module>
  if not settings.DATABASE_ENGINE:
   File "/usr/lib/python2.5/site-packages/django/utils/functional.py", line 269, in __getattr__
  self._setup()
   File "/usr/lib/python2.5/site-packages/django/conf/__init__.py", line 40, in _setup
  self._wrapped = Settings(settings_module)
   File "/usr/lib/python2.5/site-packages/django/conf/__init__.py", line 75, in __init__
  raise ImportError, "Could not import settings '%s' (Is it on sys.path? Does it have syntax errors?): %s" % (self.SETTINGS_MODULE, e)
 ImportError: Could not import settings 'mysite.settings' (Is it on sys.path? Does it have syntax errors?): No module named mysite.settings
几天以来,我一直在努力让它发挥作用,并在这里阅读了一些博客和答案,但都没有效果

编辑:

现在我试过了,我的wsgi文件现在如下所示:

import sys
sys.path.insert(0, '/home/jim/django/mysite')
sys.path.insert(0, '/home/jim/django')

import settings

import django.core.management
django.core.management.setup_environ(settings)
utility = django.core.management.ManagementUtility()
command = utility.fetch_command('runserver')

command.validate()

import django.conf
import django.utils

django.utils.translation.activate(django.conf.settings.LANGUAGE_CODE)

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

管理员仍在工作,但我在尝试安装标记模块时遇到了相同的错误。

你读过Graham Dumpleton的吗?它很好地描述了一些常见的配置问题,并特别涉及了
mysite.settings
settings

更新:请阅读下面格雷厄姆·邓普尔顿的精彩评论

更新2:正如格雷厄姆和贝科明古鲁所指出的,问题根本不在于WSGI。相反,安装
django tagging
时会出现问题。听取Becominguru的建议,首先使用
pip
安装
django tagging

  • 因为您的管理员可以工作,所以wsgi的设置很好。不要费心修改/编辑它
为了确保这不是Apache/mod wsgi设置问题,您可以从生产机器上运行开发服务器

python manage.py runserver 0:8080
然后将浏览器指向

http://yoursite.com:8080/
你必须看到完全相同的行为

那么

要调试此问题,请执行以下操作:

  • 在服务器上的python shell上,尝试导入标记。显然,从您的回溯来看,
    导入标记
    是它引发错误的地方,这就是为什么无法导入设置的原因

  • 然后,只需删除包含标记的包,并使用下面的命令重新安装,它知道如何安装包


您能给我们显示settings.py的绝对路径吗?@Ruslan Spivak/home/jim/django/mysite/settings.py希望它能解决您的特定问题。仍然有相同的问题:/n那么您可能有权限问题。Apache作为特殊用户而不是您运行。因此,Django站点所在的目录,加上截至该点的所有父目录,Apache用户必须可以访问。如果您的主帐户上有rwx-----,则Apache将无法看到您帐户的内部。或者,如果站点正在工作,但添加此项时失败,则您可能只是在设置文件中引入了语法错误。张贴您修改的设置文件的部分。Hmmm,否。因为第二个WSGI导入方法导入WSGI脚本文件中的设置,如果其中有语法错误,您应该会收到不同的消息。顺便说一句,那篇博文并没有说要将“/home/jim/django”添加到sys.path中,只是站点目录本身。但在这种情况下,这并不重要。无论如何,这一切都无关紧要,因为我们刚刚意识到原始错误消息甚至不是来自mod_wsgi内部。它来自直接在“setup.py”上调用的python。你在哪里做的?如果在命令行上执行,看起来您没有正确设置PYTHONPATH。WSGI的东西是不相关的。导入标记不起作用,即使是使用开发服务器:Traceback(最近一次调用last):File“”,第1行,在ImportError中:没有名为taggingJimbo的模块:这正是我所预测的。你现在可以仔细阅读我的答案,来解决你的问题!以前从未使用过pip,但它确实有效。不知道是什么导致了这个问题。我希望它是特定的标签,这样我就不会在以后的另一个包中遇到同样的问题。。非常感谢。
python manage.py runserver 0:8080
http://yoursite.com:8080/
sudo pip install django-tagging