ImportError:无法导入设置(是不是在 sys.path 上?设置文件中是不是存在导入错误?):没有名为 setting 的模块
Posted
技术标签:
【中文标题】ImportError:无法导入设置(是不是在 sys.path 上?设置文件中是不是存在导入错误?):没有名为 setting 的模块【英文标题】: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_wsgi、Django 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
再次感谢...
【问题讨论】:
【参考方案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>
已编辑以从 嵌入式模式 切换到 守护程序模式。感谢this blog post 的作者Graham Dumpleton 并对此发表了评论。
【讨论】:
除非您不应该使用嵌入式模式。使用mod_wsgi的守护模式,它是WSGIDaemonProcess
的python-path
选项。重复一遍,除非你被 Windows 卡住了,否则你永远不应该使用嵌入式模式。
@GrahamDumpleton,感谢您的评论,我也阅读了your blog post。我不知道守护程序模式。谢谢!编辑了我的答案【参考方案2】:
阅读官方 Django 文档,了解如何为 mod_wsgi 设置内容:
https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/modwsgi/您没有按照该文档中的说明设置 Python 模块搜索路径或 DJANGO_SETTINGS_MODULE。
【讨论】:
【参考方案3】:您的设置在示例应用程序中,因此应该是:
os.environ['DJANGO_SETTINGS_MODULE'] = 'example.settings'
【讨论】:
我尝试了同样的错误:(设置在项目示例中很抱歉以上是关于ImportError:无法导入设置(是不是在 sys.path 上?设置文件中是不是存在导入错误?):没有名为 setting 的模块的主要内容,如果未能解决你的问题,请参考以下文章
cx_Freeze- ImportError:无法导入名称设置
橙色3:ImportError:无法导入名称'_variable'
如何停止获取 ImportError:将 django 与 wsgi 一起使用时无法导入设置“mofin.settings”?
无法导入 Torch (ImportError: libcudart.so.10.0)
Python urllib3 错误 - ImportError:无法导入名称 UnrewindableBodyError