[django]from ...import和import的区别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[django]from ...import和import的区别?相关的知识,希望对你有一定的参考价值。

django book的例子其中在urls.py中from django.conf.urls.defaults import *from mysite.views import current_datetime#用下面一行,django就会报错,说找不到current_datetime,但另外一本python的书提到尽量不使用from...import,二者的区别是什么呢?#import mysite.viewsurlpatterns = patterns('', (r'^time/$', current_datetime),)

1、from xxx import *会导入xxx.__all__中的所有元素2、from xxx import yyy将xxx.yyy导入到当前执行环境,可以直接使用yyy3、import xxx.yyy将xxx.yyy导入到当前环境,但不能直接使用yyy,必须使用xxx.yyy4、不建议使用from xxx import yyy是因为yyy被直接导入当前环境,可以直接使用yyy,可能其他模块也有yyy,会重名,导致因命名空间(包空间)混乱而出错5、特别不建议使用from xxx import * 参考技术A 多谢,sorry,没有先百度。

from django.db import models 返回 No module named mywebsite.settings

【中文标题】from django.db import models 返回 No module named mywebsite.settings【英文标题】:from django.db import models returns No module named mywebsite.settings 【发布时间】:2014-09-08 12:21:34 【问题描述】:

我已经非常努力地完成这项工作,但它不起作用。我已经在这里阅读了无数的答案,但它是徒劳的。

我安装了 Python 2.7 和 Django 1.6.5。我创建了一个virtualenvenv,我也在其中创建了我的项目和应用程序。 Django 服务器 在安装 MySQL-python 并运行在 INSTALLED_APPS 中创建所有应用程序的 manage syncdb 后运行良好,但如果我尝试 from django.db import models 它会说:

ImportError: 无法导入设置“mywebsite.settings”(它在 sys.path 上吗?设置文件中是否存在导入错误?):没有名为 mywebsite.settings 的模块

我在系统变量的环境变量中创建了一个Path。变量名为DJANGO_SETTINGS_MODULE,其值为mywebsite.settings

我做错了什么?

【问题讨论】:

【参考方案1】:

您可以从与您的 settings.py(即 mywebsite)相同的目录中运行 python manage.py runserver,或者您应该导出 PYTHONPATH 以在 export PYTHONPATH=$PYTHONPATH:<path_to_mywebsite> 的路径中包含 mywebsite.settings(对于 unix 系统)

对于 windows 看看how to add to pythonpath in windows

【讨论】:

python manage.py runserver 没有任何问题。 Windows 7 相当于export PYTHONPATH=$PYTHONPATH:<path_to_mywebsite>

以上是关于[django]from ...import和import的区别?的主要内容,如果未能解决你的问题,请参考以下文章

from django.urls import path ImportError: cannot import name path

from django.conf.urls import *找不到patterns模块? Django-1.10,python27

from django.utils.importlib import import_module ImportError: No module named importlib

from django.db import models 返回 No module named mywebsite.settings

Django:djcelery Import error from celery import current_app as celery in virtualenv

Python from django.contrib.auth.views import logout ImportError: cannot import name 'logout'