【问题标题】:ImportError: Could not import settings (Is it on sys.path? Is there an import error in the settings file?): No module named settingImportError:无法导入设置(是否在 sys.path 上?设置文件中是否存在导入错误?):没有名为 setting 的模块
【发布时间】:2014-03-29 13:50:22
【问题描述】:

我正在使用 python2.7 在 VPS CentOS 6(带有 Plesk)上将“示例”项目投入生产, mod_wsgiDjango 1.6 我已经证明了许多配置,但我总是收到错误“没有名为设置的模块”或“没有名为 Unipath 的模块”。不是我错了或我失踪了。谢谢和问候。

我的 vhost.conf:

Alias /static/ /var/www/vhosts/example.com/httpdocs/
Alias /media/ /var/www/vhosts/example.com/httpdocs/media/

WSGIScriptAlias / /var/www/vhosts/example.com/example.wsgi

<Directory /var/www/vhosts/example.com>
    Order allow,deny
    Allow from all
</Directory>

我的例子.wsgi:

import os
import sys

path = '/var/www/vhosts/example.com/example'
if path not in sys.path:
   sys.path.append(path)

os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

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

我通过 ftp 将我的项目放入:/var/www/vhosts/example.com/

example.com/
      example(project)
          settings.py
          urls.py
          ...
      app
          models.py
          forms.py
          views.py
          ...
      templates
      httpdocs
      example.wsgi
      manage.py

再次感谢...

【问题讨论】:

    标签: django python-2.7 mod-wsgi plesk centos6


    【解决方案1】:

    使用WSGIDaemonProcess & WSGIProcessGroup

    您可以通过在apache2 配置中设置python-path 来解决此问题 指向你的 django 项目目录

    Alias /static/ /var/www/vhosts/example.com/httpdocs/
    Alias /media/ /var/www/vhosts/example.com/httpdocs/media/
    
    WSGIScriptAlias / /var/www/vhosts/example.com/example.wsgi
    
    WSGIDaemonProcess example.com processes=2 threads=15 display-name=%{GROUP} python-path=/var/www/vhosts
    WSGIProcessGroup example.com
    
    <Directory /var/www/vhosts/example.com>
        Order allow,deny
        Allow from all
    </Directory>
    

    【讨论】:

    • 除非您不应该使用嵌入式模式。使用mod_wsgi的守护模式,它是WSGIDaemonProcesspython-path选项。重复一遍,除非你被 Windows 卡住了,否则你永远不应该使用嵌入式模式。
    • @GrahamDumpleton,感谢您的评论,我也阅读了your blog post。我不知道守护程序模式。谢谢!编辑了我的答案
    【解决方案2】:

    阅读官方 Django 文档,了解如何为 mod_wsgi 设置内容:

    您没有按照该文档中的说明设置 Python 模块搜索路径或 DJANGO_SETTINGS_MODULE。

    【讨论】:

      【解决方案3】:

      您的设置在示例应用程序中,因此应该是:

      os.environ['DJANGO_SETTINGS_MODULE'] = 'example.settings'
      

      【讨论】:

      • 我尝试了同样的错误:(设置在项目示例中很抱歉
      猜你喜欢
      • 2013-09-06
      • 2014-04-16
      • 1970-01-01
      • 2015-10-14
      • 2013-03-08
      • 1970-01-01
      • 1970-01-01
      • 2012-08-09
      • 2014-06-04
      相关资源
      最近更新 更多