Py学习  »  问与答

为什么django.db在不同操作系统上效果不同?

bit世界风-weibo • 10 年前 • 6934 次点击  

1在windows操作系统上,import django.db一切正常。 2在linux(pip 在centos上安装,源码在suselinux上安装),均有问题。

python
Python 2.6 (r26:66714, May  6 2011, 15:10:21) 
[GCC 4.3.4 [gcc-4_3-branch revision 152973]] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> import django.db
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib64/python2.6/site-packages/django/db/__init__.py", line 11, in <module>
    if settings.DATABASES and DEFAULT_DB_ALIAS not in settings.DATABASES:
  File "/usr/local/lib64/python2.6/site-packages/django/conf/__init__.py", line 53, in __getattr__
    self._setup(name)
  File "/usr/local/lib64/python2.6/site-packages/django/conf/__init__.py", line 46, in _setup
    % (desc, ENVIRONMENT_VARIABLE))
django.core.exceptions.ImproperlyConfigured: Requested setting DATABASES, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
环境变量:
suse-rsyslog:~ # echo $PATH
/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/usr/lib/mit/bin:/usr/lib/mit/sbin:/usr/local/lib64/python2.6/site-packages/django/bin:/usr/local/lib64/python2.6/site-packages/django/db:/usr/local/lib64/python2.6/site-packages/django/utils:/usr/local/lib64/python2.6/site-packages/django/conf:/usr/local/lib64/python2.6/site-packages/django/

大家谁遇到过吗?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/159
 
6934 次点击  
文章 [ 5 ]  |  最新文章 10 年前
indexofire
Reply   •   1 楼
indexofire    10 年前

@bit世界风-weibo 其实只要你明白了manage和global_settings背后的运作机制,django的规矩就是python的规矩

Py站长
Reply   •   2 楼
Py站长    10 年前

@单休哥 right

一休哥
Reply   •   3 楼
一休哥    10 年前

我的机器在windown上import django.db也会报楼主一样的错误,但执行import django却没有问题,说明django的安装没有问题,问题是import django.db时,“ settings.DATABASES and DEFAULT_DB_ALIAS not in settings.DATABASES ”,即 global_settings.py默认配置项DATABASES为空;这也是它提示你通过指定环境变量DJANGO_SETTINGS_MODULE对应的settings.py 来配置DATABASES选项的原因。

bit世界风-weibo
Reply   •   4 楼
bit世界风-weibo    10 年前

@indexofire 看完你说的方法还没有去试验,第一反应就是django规矩很多,我搜索django的安装方法,都没有你讲到的。django并不是一个简单的框架。

indexofire
Reply   •   5 楼
indexofire    10 年前

明显是没有设置DATABASES或者没有设置好环境变量DJANGO_SETTINGS_MODULE, 或者你的packages没有在系统python路径里,建议使用virtualenv来建立python开发环境