mkproject -t django 创建空目录而不是 django 项目
mkproject -t django creates empty directory not a django project
我刚刚学习如何使用 virtualenvwrapper
,在阅读文档后我发现 mkproject
命令可以创建一个新的 virtualenv
和一个新项目。文档 also suggests that using a -t
flag followed by template name would create a project。所以我认为这应该创建一个 django 项目:
mkproject -t django todolist
但是当我转到 PROJECT_HOME
时,我看到的只是一个名为 todolist
的空目录,它应该是一个 django 项目。
我很困惑。这可能吗?因为 mkproject
命令创建了一个全新的虚拟环境,其中没有安装 django。那么它如何尝试创建一个 Django 项目呢?
请帮助我理解这一点。
关于你的问题
So how could it attempt to create a django project?
来自 virtualenvwrapper.django
的 pypi page:
virtualenvwrapper.django is a template plugin for virtualenvwrapper to
create new Django projects automatically. When used with mkproject, it
installs Django into the new virtualenv then runs django-admin.py to
create a new project skeleton.
至于你得到一个空目录的原因,如果你看一下virtualenvwrapper
的源代码,mkproject
的-t
参数映射到
# ...
i=$(( $i + 1 ));
templates="$templates ${in_args[$i]}";;
# ...
for t in $templates
do
echo
echo "Applying template $t"
# For some reason zsh insists on prefixing the template
# names with a space, so strip them out before passing
# the value to the hook loader.
virtualenvwrapper_run_hook --name $(echo $t | sed 's/^ //') "project.template" "$envname" "$PROJECT_HOME/$envname"
done
所以它所做的只是在创建项目后 运行 挂钩。因此,如果挂钩 (virtualenvwrapper.django
) 不存在,那么期望一个空目录是合理的。
我刚刚学习如何使用 virtualenvwrapper
,在阅读文档后我发现 mkproject
命令可以创建一个新的 virtualenv
和一个新项目。文档 also suggests that using a -t
flag followed by template name would create a project。所以我认为这应该创建一个 django 项目:
mkproject -t django todolist
但是当我转到 PROJECT_HOME
时,我看到的只是一个名为 todolist
的空目录,它应该是一个 django 项目。
我很困惑。这可能吗?因为 mkproject
命令创建了一个全新的虚拟环境,其中没有安装 django。那么它如何尝试创建一个 Django 项目呢?
请帮助我理解这一点。
关于你的问题
So how could it attempt to create a django project?
来自 virtualenvwrapper.django
的 pypi page:
virtualenvwrapper.django is a template plugin for virtualenvwrapper to create new Django projects automatically. When used with mkproject, it installs Django into the new virtualenv then runs django-admin.py to create a new project skeleton.
至于你得到一个空目录的原因,如果你看一下virtualenvwrapper
的源代码,mkproject
的-t
参数映射到
# ...
i=$(( $i + 1 ));
templates="$templates ${in_args[$i]}";;
# ...
for t in $templates
do
echo
echo "Applying template $t"
# For some reason zsh insists on prefixing the template
# names with a space, so strip them out before passing
# the value to the hook loader.
virtualenvwrapper_run_hook --name $(echo $t | sed 's/^ //') "project.template" "$envname" "$PROJECT_HOME/$envname"
done
所以它所做的只是在创建项目后 运行 挂钩。因此,如果挂钩 (virtualenvwrapper.django
) 不存在,那么期望一个空目录是合理的。