|
|
|
|
@ -1,22 +1,36 @@
|
|
|
|
|
#!/usr/bin/env python
|
|
|
|
|
# 指定使用env来查找python解释器,这样可以跨平台使用
|
|
|
|
|
|
|
|
|
|
import os
|
|
|
|
|
import sys
|
|
|
|
|
|
|
|
|
|
# 当这个脚本被直接执行时(而不是被导入为模块)
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
|
# 设置默认的DJANGO_SETTINGS_MODULE环境变量
|
|
|
|
|
# 这里指定了项目的settings模块为"djangoblog.settings"
|
|
|
|
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "djangoblog.settings")
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
# 尝试从django.core.management导入execute_from_command_line函数
|
|
|
|
|
# 这个函数用于解析和执行Django管理命令
|
|
|
|
|
from django.core.management import execute_from_command_line
|
|
|
|
|
except ImportError:
|
|
|
|
|
# The above import may fail for some other reason. Ensure that the
|
|
|
|
|
# issue is really that Django is missing to avoid masking other
|
|
|
|
|
# exceptions on Python 2.
|
|
|
|
|
# 如果导入失败,可能是由于Django没有安装或其他原因
|
|
|
|
|
# 下面的代码用于更精确地判断是否是Django未安装导致的错误
|
|
|
|
|
|
|
|
|
|
# 尝试直接导入django模块
|
|
|
|
|
try:
|
|
|
|
|
import django
|
|
|
|
|
except ImportError:
|
|
|
|
|
# 如果django模块也无法导入,说明Django确实没有安装
|
|
|
|
|
raise ImportError(
|
|
|
|
|
"Couldn't import Django. Are you sure it's installed and "
|
|
|
|
|
"available on your PYTHONPATH environment variable? Did you "
|
|
|
|
|
"forget to activate a virtual environment?"
|
|
|
|
|
)
|
|
|
|
|
# 如果能导入django但无法导入execute_from_command_line,则抛出原始异常
|
|
|
|
|
raise
|
|
|
|
|
|
|
|
|
|
# 执行命令行参数指定的Django管理命令
|
|
|
|
|
# sys.argv包含了命令行参数,例如['manage.py', 'runserver']
|
|
|
|
|
execute_from_command_line(sys.argv)
|
|
|
|
|
|