我试图从python访问MySQL数据库。 它运行在Openshift-python2.7,MySQL 5.5上。 Django和Mysql部署运行得很好。PHP管理工程。在
已编辑设置.py在
setup(
name='YourAppName',
version='1.0',
description='OpenShift App',
author='Your Name',
author_email='example@example.com',
url='http://www.python.org/sigs/distutils-sig/',
install_requires=['Django<=1.4', 'MySQL-python',],
)
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': os.environ['OPENSHIFT_APP_NAME'],
'USER': os.environ['OPENSHIFT_MYSQL_DB_USERNAME'],
'PASSWORD': os.environ['OPENSHIFT_MYSQL_DB_PASSWORD'],
'HOST': os.environ['OPENSHIFT_MYSQL_DB_HOST'],
'PORT': os.environ['OPENSHIFT_MYSQL_DB_PORT']
}
}
但当我把这个
^{pr2}$在一些py脚本中,我在日志中看到了这一点:
mod_wsgi (pid=327977): Target WSGI script '/var/lib/openshift/542145275xxxxx9330000e6/app-root/runtime/repo/wsgi.py' cannot be loaded as Python module.
mod_wsgi (pid=327977): Exception occurred processing WSGI script '/var/lib/openshift/542145275xxxxx9330000e6/app-root/runtime/repo/wsgi.py'.
Traceback (most recent call last):
File "/var/lib/openshift/542145275xxxxx9330000e6/app-root/runtime/repo/wsgi.py", line 18, in <module>
from django.db import connection
File "/var/lib/openshift/542145275xxxxx9330000e6/python/virtenv/lib/python2.7/site-packages/Django-1.4-py2.7.egg/django/db/__init__.py", line 11, in <module>
if DEFAULT_DB_ALIAS not in settings.DATABASES:
File "/var/lib/openshift/542145275xxxxx9330000e6/python/virtenv/lib/python2.7/site-packages/Django-1.4-py2.7.egg/django/utils/functional.py", line 184, in inner
self._setup()
File "/var/lib/openshift/542145275xxxxx9330000e6/python/virtenv/lib/python2.7/site-packages/Django-1.4-py2.7.egg/django/conf/__init__.py", line 40, in _setup
raise ImportError("Settings cannot be imported, because environment variable %s is undefined." % ENVIRONMENT_VARIABLE)
ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.
问题的原因是什么? 谢谢你的回答。在
编辑: 在部署中,没有设置.py(应该在DJANGO_SETTINGS_模块中引用这个,对吗?。所以现在我创造了一个。然后我把变量改成这样:
export DJANGO_SETTINGS_MODULE=var.lib.openshift.542145275xxxxx9330000e6.app-root.runtime.repo.settings
我尝试了不同的值,子文件夹等。我不确定什么是正确的值。在
我从中删除了数据库设置.py把它们移到我新创造的设置.py. 看起来像这样:
import os
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': os.environ['OPENSHIFT_APP_NAME'],
'USER': os.environ['OPENSHIFT_MYSQL_DB_USERNAME'],
'PASSWORD': os.environ['OPENSHIFT_MYSQL_DB_PASSWORD'],
'HOST': os.environ['OPENSHIFT_MYSQL_DB_HOST'],
'PORT': os.environ['OPENSHIFT_MYSQL_DB_PORT']
}
}
没有变化。 为什么DJAGNO_SETTING_模块仍然是“未定义的”(即使定义错误)?在
这是django项目吗?如果是这样的话,
settings.py
文件中缺少很多设置,以下是django 1.4的默认settings.py
:您需要将该文件保存在一个目录中,然后将
DJANGO_SETTINGS_MODULE
指向该文件的python导入路径。这意味着它不是一个文件路径,而是类似DJANGO_SETTINGS_MODULE=someapp.settings
相关问题 更多 >
编程相关推荐