我读了 django doc和一些 SO 帖子以了解 manage.py 和 django-admin.py 之间的区别。
他们都说:
manage.py is automatically created in each Django project. manage.py is a thin wrapper around django-admin.py that takes care of two things for you before delegating to django-admin.py:
- It puts your project’s package on sys.path.
- It sets the DJANGO_SETTINGS_MODULE environment variable so that it points to your project’s settings.py file.
所以我检查了这两个文件的源代码(最新版本,所以它是文档)。
那我就糊涂了。 manage.py
做第二件事:设置 DJANGO_SETTINGS_MODULE 环境变量。除此之外,我真的找不到这两个脚本之间的任何区别。
[django-admin.py]
#!/usr/bin/env python
from django.core import management
if __name__ == "__main__":
management.execute_from_command_line()
[管理.py]
#!/usr/bin/env python
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "{{ project_name }}.settings")
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
为什么? django 文档是否过时?或者我在这里错过了什么?将项目的包放在 sys.path 上的代码在哪里?
最佳答案
关于python - django manage.py如何把一个项目包放到sys.path上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19476996/