用于Windows上的AppEngine的django-nonrel

时间:2015-10-15 02:56:03

标签: python django windows google-app-engine django-nonrel

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

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

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

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

适用于* NIX操作系统,显然无法在Windows上运行。简单地说,

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

返回此错误:

 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启动并运行?提前致谢!

P.S。只是为了学习,有人可以分解给定的unix命令,就像句点和反斜杠所做的那样。再次谢谢!

****** 响应回复更新 *******

非常感谢,尼克!你回答了我的问题的每一部分,解决方案完美无缺。不幸的是下一步,

python manage.py runserver

发生了一个奇怪的错误:

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.

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

再次感谢

1 个答案:

答案 0 :(得分:0)

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

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

反斜杠在换行符之前使用,以免破坏命令的解释。

在互联网的其他地方(例如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%