Python 无法导入设置';myproject.settings';(是否在sys.path上?):没有名为pinax的模块

Python 无法导入设置';myproject.settings';(是否在sys.path上?):没有名为pinax的模块,python,django,pinax,Python,Django,Pinax,我正试图让pinax在Web派系上工作,并且有很多问题 [Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1] mod_wsgi (pid=22796): Exception occurred processing WSGI script '/home/pawesome/webapps/qtsocial/myproject.wsgi'. [Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1]

我正试图让pinax在Web派系上工作,并且有很多问题

[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1] mod_wsgi (pid=22796): Exception occurred processing WSGI script '/home/pawesome/webapps/qtsocial/myproject.wsgi'.
[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1] Traceback (most recent call last):
[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1]   File "/home/pawesome/webapps/qtsocial/lib/python2.6/django/core/handlers/wsgi.py", line 250, in __call__
[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1]     self.load_middleware()
[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1]   File "/home/pawesome/webapps/qtsocial/lib/python2.6/django/core/handlers/base.py", line 39, in load_middleware
[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1]     for middleware_path in settings.MIDDLEWARE_CLASSES:
[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1]   File "/home/pawesome/webapps/qtsocial/lib/python2.6/django/utils/functional.py", line 276, in __getattr__
[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1]     self._setup()
[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1]   File "/home/pawesome/webapps/qtsocial/lib/python2.6/django/conf/__init__.py", line 42, in _setup
[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1]     self._wrapped = Settings(settings_module)
[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1]   File "/home/pawesome/webapps/qtsocial/lib/python2.6/django/conf/__init__.py", line 89, in __init__
[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1]     raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1] ImportError: Could not import settings 'myproject.settings' (Is it on sys.path?): No module named pinax
wsgi:

import os
import sys

from django.core.handlers.wsgi import WSGIHandler

os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'
application = WSGIHandler()
wsgi与myproject位于同一文件夹中,settings.py肯定位于myproject中。那么是什么原因呢

编辑:


好吧,我接受了这里以及WebPosition的建议,wsgi现在看起来像这样

import os
import sys
from site import addsitedir
from django.core.handlers.wsgi import WSGIHandler

os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'
sys.path.append('/home/pawesome/webapps/qtsocial/myproject')
sys.path.append('/home/pawesome/webapps/qtsocial')

addsitedir('/home/pawesome/envs/pinax072/lib/python2.6/site-packages')
application = WSGIHandler()
我认为这解决了一些问题,但不是所有问题。。。现在我得到

[Sun Feb 19 20:00:28 2012] [error] [client 127.0.0.1] mod_wsgi (pid=15572): Exception occurred processing WSGI script '/home/pawesome/webapps/qtsocial/myproject.wsgi'.
[Sun Feb 19 20:00:28 2012] [error] [client 127.0.0.1] Traceback (most recent call last):
[Sun Feb 19 20:00:28 2012] [error] [client 127.0.0.1]   File "/home/pawesome/webapps/qtsocial/lib/python2.6/django/core/handlers/wsgi.py", line 250, in __call__
[Sun Feb 19 20:00:28 2012] [error] [client 127.0.0.1]     self.load_middleware()
[Sun Feb 19 20:00:28 2012] [error] [client 127.0.0.1]   File "/home/pawesome/webapps/qtsocial/lib/python2.6/django/core/handlers/base.py", line 47, in load_middleware
[Sun Feb 19 20:00:28 2012] [error] [client 127.0.0.1]     raise exceptions.ImproperlyConfigured('Error importing middleware %s: "%s"' % (mw_module, e))
[Sun Feb 19 20:00:28 2012] [error] [client 127.0.0.1] ImproperlyConfigured: Error importing middleware django_openid.consumer: "No module named voting_extras"

再次感谢各位。。。Web派系的人最近已经放弃了,并告诉我来这里,尽管我已经有了lol

你有没有尝试将该文件夹明确添加到你的PYTHONPATH?此外,您可能需要同时添加项目文件夹和父文件夹。使用项目路径将以下行添加到wsgi文件:

sys.path.append('/explicit/path/to/myproject')
sys.path.append('/explicit/path/to')
请在
应用程序=WSGIHandler()行之前执行此操作


更新:根据调查,新错误似乎有相同的原因。请仔细检查您的“投票附加”应用程序的位置,以及其父文件夹是否存在于PYTHONPATH中。

我认为您需要将您的内容添加到PYTHONPATH中。我添加了我的项目,它是虚拟的。 下面是每个项目的wsgi外观示例

import sys
import site
import os

envpath = '/development/myproject/env/lib/python2.7/site-packages'

# we add currently directory to path and change to it
pwd = os.path.dirname(os.path.abspath(__file__))
os.chdir(pwd)
sys.path = [pwd] + sys.path

# Append paths
site.addsitedir(envpath)

# now start django
from django.core.handlers.wsgi import WSGIHandler
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
application = WSGIHandler()
有两个问题,

  • virtualenv应该加载到~/apache2/bin/中,以这些行开头

    WORKON_HOME=/HOME/pawesome/envs/pinax072/
    . $工作回家/装箱/激活

  • 您应该使用pinax提供的wsgi文件,而不是我们的安装程序提供的文件,因为pinax有一些需要的自定义路径代码

    #WSGIScriptAlias//home/pawesome/webapps/qtsocial/myproject.wsgi
    WSGIScriptAlias//home/pawesome/webapps/qtsocial/myproject/deploy/pinax.wsgi

  • 根据这一点,只需将路径添加到Apache配置或站点配置中的站点包和python站点包目录(VirtualHost指令之外)

    WSGIPythonPath/path/to/mysite.com:/path/to/your/venv/lib/python2.X/site-packages

    对我来说,这是:


    WSGIPythonPath/var/www/djtest:/usr/local/lib/python2.7/site packages

    在终端中,将cd放入包含settings.py的目录中,然后运行

    python settings.py
    

    您可能会得到一个很容易修复的导入错误(键入错误或语法错误)。

    使用Pycharm。我关闭了“将内容根添加到PYTHONATH”和“将源根添加到PYTHONATH”。它能工作。

    我也遇到过类似的问题。在我的例子中,我有一个顶级配置文件夹,其中包含generalsettings.py文件。在myproject文件夹中,我有第二个设置,我尝试在其中导入config.settings文件

    在我的例子中,问题是python正在查看myproject.config文件夹,而不是顶级配置

        # project structure
        config/
            settings.py
            constans.py
        myproject/
            config/
                constants.py
            settings.py
            manage.py
            urls.py
    
    错误:导入错误:无法导入设置“myproject.settings”(是 是否在sys.path?:没有名为settings的模块


    解决方案:我删除/移动了myproject/config文件夹。

    好的,所以我接受了这里以及Web派系的建议,wsgi现在看起来像这样。。。从站点导入操作系统从django.core.handlers.wsgi导入WSGIHandler os.environ['django_SETTINGS_MODULE']='myproject.SETTINGS'sys.path.append('/home/pawesome/webapps/qtsocial/myproject')sys.path.append('/home/pawesome/webapps/qtsocial')addsitedir('/home/pawesome/envs/pinax072/lib/python2.6/site packages'))application=WSGIHandler()@milktrey根据webpartion提供的一些信息更新了答案,希望对您有所帮助。。。