2015-10-15 2 views
1

J'ai des problèmes avec quelque chose qui devrait être relativement simple - faire décoller un projet django-nonrel sur une machine Windows. J'ai téléchargé et dézippé les fichiers requis de http://djangoappengine.readthedocs.org/en/latest/installation.html, ajouté les modules requis à mon dossier racine de projets C: \ djangoapp, de sorte que la hiérarchie des dossiers soit (notez que chaque module contient les fichiers corrects, et ont été omis par souci de brièveté) Maintenant, quand je cd dans C: \ djangoapp, j'ai besoin de connaître la commande à exécuter. La commande donnée:django-nonrel pour AppEngine sur Windows

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

est pour un système d'exploitation * NIX et, évidemment, ne fonctionnera pas sous Windows. Il suffit de faire,

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

renvoie cette erreur:

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 

De toute évidence, il y a un problème avec PYTHONPATH que la commande Unix donnée commence par PYTHONPATH =. Comment est-ce que j'exécuterais l'équivalent sur une boîte de Windows pour faire fonctionner django-nonrel? Merci d'avance!

P.S. Juste pour apprendre, est-ce que quelqu'un pourrait décomposer le commandement unix donné, en ce qui concerne ce que font les périodes et les antislashs. Merci encore!

****** MISE A JOUR EN RÉPONSE À Réponse *******

Merci une tonne, Nick! Vous avez répondu à toutes les parties de ma question et la solution a parfaitement fonctionné. Malheureusement, l'étape suivante,

python manage.py runserver

a couru dans une étrange erreur:

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. 

De toute évidence pas la bonne solution, mais je suis allé à l'emplacement du fichier et commenté le bloc concerné face à l'image talon, et le serveur a démarré très bien. Si quelqu'un connaît une solution réelle, faites le moi savoir pendant que je l'examine un peu plus!

Merci encore

+0

En ce qui PIL, si vous google pour cette erreur, vous pourriez être en mesure de trouver [des réponses] (http : //stackoverflow.com/questions/1170898/unable-to-find-the-python-pil-library-google-app-engine). Je ne suis pas sûr si quelque chose dans ce fil aidera, mais nous ne pouvons pas savoir sans essayer. À la fin, vous pourriez essayer d'utiliser la strophe app.yaml 'libraries' en production, mais en fournissant votre propre version de PIL dans le chemin python de l'environnement de développement. – Nick

Répondre

0

Dans la commande d'origine, PYTHONPATH=. est prêt à établir la variable d'environnement PYTHONPATH-., qui est un symbole spécial pour le répertoire courant. Je pense que les deux env vars et un symbole spécial pour le répertoire courant existent dans Windows CMD, bien que cette syntaxe particulière ne traduit pas. Le caractère de point spécial est également utilisé à la fin de la commande, après myapp.

Cela signifie que python path inclura le répertoire en cours et l'interpréteur recherchera les modules référencés dans le répertoire en cours. La barre oblique inverse est utilisée juste avant un caractère de retour à la ligne, afin de ne pas perturber l'interprétation de la commande. Ailleurs sur Internet (par exemple this SO question), vous trouverez des exemples de définition de variables d'environnement dans le contexte de Windows CMD.

Le symbole de répertoire actuel dans Windows est %CD%.

Sous linux, vous pouvez définir des variables d'environnement sur la même ligne qu'une autre commande, mais dans Windows, vous devrez le définir comme une commande avant la commande principale.

Dans Windows, vous devrez peut-être créer un fichier .cmd et avoir contient:

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