我遇到的问题应该是相对简单的 - 在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.
显然不是正确的解决方案,但我只是去了文件位置并注释掉了处理图像存根的相关块,服务器启动正常。如果有人知道一个实际的解决方案,请在我进一步研究之前告诉我!
再次感谢
答案 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%