Nic*_*ong 1 python django django-1.4
django 1.4,python 2.6.6.
我有一个应用程序"工作".
我的文件树:
djproject/
|-- djproject
| |-- db
| | `-- tdata.db
| |-- __init__.py
| |-- __init__.pyc
| |-- jobs
| | |-- admin.py
| | |-- admin.pyc
| | |-- __init__.py
| | |-- __init__.pyc
| | |-- models.py
| | |-- models.pyc
| | |-- tests.py
| | `-- views.py
| |-- settings.py
| |-- settings.pyc
| |-- urls.py
| |-- urls.pyc
| |-- wsgi.py
| `-- wsgi.pyc
`-- manage.py
Run Code Online (Sandbox Code Playgroud)
我的manage.py文件:
#!/usr/bin/env python
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "djproject.settings")
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
Run Code Online (Sandbox Code Playgroud)
然后我运行"python manage.py shell",其中是与文件"manage.py"相同的级别文件夹.
然后我输入"from jobs.models import Job".
错误如下(相对路径):
>>> from jobs.models import Job
Traceback (most recent call last):
File "<console>", line 1, in <module>
ImportError: No module named jobs.models
Run Code Online (Sandbox Code Playgroud)
但是,如果我使用完整路径
>>> from djproject.jobs.models import Job
Run Code Online (Sandbox Code Playgroud)
错误消失,为什么?
这是预期的,因为您现在manage.py从与以前版本的Django不同的目录运行.有关更多详细信息,请参阅Django文档中的更新的默认项目布局和manage.py .
您现在manage.py从树中的更高目录开始,因此djproject在导入代码时需要包含.该文档还提供了有关如何以不同方式执行此操作的建议(如果需要):
作为顶级模块导入的任何内容都可以放在新的manage.py旁边.例如,要将"myapp"与项目模块分离并将其作为myapp导入,请将其放在mysite /目录之外:
manage.py
myapp/
__init__.py
models.py
mysite/
__init__.py
settings.py
urls.py
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2443 次 |
| 最近记录: |