Windows 上 AppEngine 的 django-nonrel

django-nonrel for AppEngine on Windows

我遇到了一些本应相对简单的事情——在 Windows 机器上启动 django-nonrel 项目。我已经从 http://djangoappengine.readthedocs.org/en/latest/installation.html 下载并解压缩了所需的文件,将所需的模块添加到我的项目根文件夹 C:\djangoapp 中,这样文件夹层次结构是(注意每个模块都包含正确的文件,并且已被省略为了简洁起见)

djangoapp/
     autoload/
     dbindexer/
     django/
     djangoappengine/
     djangotoolbox/

现在,当我 cd 进入 C:\djangoapp 时,我需要知道 运行 的命令。给定的命令:

PYTHONPATH=. python django/bin/django-admin.py startproject \
--name=app.yaml --template=djangoappengine/conf/project_template myapp .

适用于 *NIX OS,显然不适用于 Windows。简单地做,

python django/bin/django-admin.py startproject \
--name=app.yaml --template=djangoappengine/conf/project_template myapp

returns 这个错误:

 Traceback (most recent call last):
File "django/bin/django-admin.py", line 2, in <module>
 from django.core import management
ImportError: No module named django.core

显然 PYTHONPATH 存在问题,因为给定的 Unix 命令以 PYTHONPATH= 开头。我将如何在 Windows 框上执行等效项以启动 django-nonrel 并 运行ning?提前致谢!

P.S。只是为了学习,有人可以分解给定的 unix 命令,就句点和反斜杠的作用而言。再次感谢!

****** 根据回答更新 *******

非常感谢,尼克!您回答了我问题的每一部分,并且解决方案非常有效。不幸的是下一步,

python manage.py runserver

运行 变成 st运行ge 错误:

File "C:\Program Files (x86)\Google\google_appengine\google\appengine\ext\testbed\__init__.py", line 585, in init_images_stub
    raise StubNotSupportedError(msg)
google.appengine.ext.testbed.StubNotSupportedError: Could not initialize images API; you are likely missing the Python "PIL" module.

显然不是正确的解决方案,但我只是转到文件位置并注释掉处理图像存根的相关块,服务器启动正常。如果有人知道实际的解决方案,请在我进一步研究时告诉我!

再次感谢

原命令中,PYTHONPATH=.是将环境变量PYTHONPATH设置为.,这是当前目录的特殊符号。我认为 windows CMD 中存在 env vars 和当前目录的特殊符号,尽管这种特殊语法不会翻译。特殊的点字符也用在命令的末尾,在 myapp 之后。

这意味着 python path 将包含当前目录,解释器将在当前目录中查找引用的模块。

反斜杠刚好用在换行符之前,以免干扰命令的解释。

在 Internet 的其他地方(例如 this SO question),您可以找到有关如何在 windows CMD 上下文中设置环境变量的示例。

windows中的当前目录符号是%CD%

在linux中,您可以在与另一个命令相同的行中设置环境变量,但在windows中,您需要将其设置为主命令之前的命令。

在 windows 中,您可能需要制作一个 .cmd 文件并使其包含:

set PYTHONPATH=%CD%
python django/bin/django-admin.py startproject --name=app.yaml --template=djangoappengine/conf/project_template myapp %CD%