11
votes

Django-admin.py et virtualenv problème sous Windows

dans mon système Il y a Django 1.2.3 Système installé LARD:

C:\> dev\venv\Scripts\activate.bat
(venv) C:\> python -c "import django; print django.get_version()"
1.2.4
(venv) C:\> django-admin.py --version
1.2.3


1 commentaires

Bonjour, j'avais un problème similaire sur Linux lorsque j'ai essayé d'utiliser un projet Django déjà existant avec un plus tard installé virtualenv.


6 Réponses :


1
votes

J'ai eu un problème similaire sur Linux lorsque j'ai essayé d'utiliser un exact Django Project avec un plus tard installé virtualenv.

est-il possible que django-admin.py de Django 1.2.4 soit pas sur votre chemin, mais que django-admin.py de votre Django 1.2.3 installer est? < P> Cela expliquerait votre sortie de xxx

car la commande python est sur le chemin de votre virtualenv mais le django-admin. py ne peut pas être.

sur votre deuxième question (en supposant que ma supposition ci-dessus est correcte): sym-link the django-admin.py fichier dans votre c: \ dev \ venv \ scripts , bien que je ne sois pas sûr de savoir comment cela fonctionne sous Windows (utilisez-vous Cygwin?).

Bien sûr, vous pouvez toujours l'appeler comme Python C: \ Chemin \ to \ django-admin.py (puisque la bonne version Python est appelé) mais bien sûr, c'est beaucoup de taper.


3 commentaires

Salut, merci pour votre réponse. Je suis sur des fenêtres simples (pas de cygwin). django-admin.py est sur le chemin du système, comme indiqué au point 3 des informations supplémentaires dans mon poste oririnal. C: \ dev \ venv \ scripts placés comme premier chemin Devrait Remplacer le répertoire des scripts du système large (mais cela ne semble pas le cas!)


Bonjour, OK est la ligne de shebang #! C: \ dev \ scripts \ python pointant vers la version Python correcte? Il semble que cela puisse avoir besoin d'être #! C: \ dev \ venv \ scripts \ python , mais je devine ici.


Vous avez raison, cela aurait dû être #! C: \ dev \ venv \ scripts \ python, désolé c'était une erreur dans la transcription. BTW, Shanyu a donné une explication réaliste pour la question ;-(



19
votes

Ceci est parce que votre Windows a associé .PY extension avec le python.exe installé globalement. Par conséquent, lorsque vous tapez django-admin.py , même si vous êtes dans un virtualenv, le Global Python est invoqué, et il trouve à son tour votre installation mondiale Django dans ses propres packages de site. Essayez python django-admin.py pour contourner l'association.


1 commentaires

Ah, c'est une mauvaise nouvelle parce que Windows m'empêche de faire des choses comme je peux. BTW, pas de surprise. Merci pour la belle explication.



16
votes

AS SHANYU déjà expliqué, c'est à cause de * .PY Les associations de fichiers apportées à votre installation de Python Installable à la place de votre virtualv. Cependant, pour répondre à votre deuxième question différemment, j'ai résolu ce problème en créant un django-admin.bat code> dans le répertoire code> scripts code> de My Virtualenv. Son contenu?

@echo off
python %VIRTUAL_ENV%\Scripts\django-admin.py %*


1 commentaires

La solution de Shnyu n'a pas fonctionné, mais le vôtre l'a fait. Merci beaucoup.



0
votes

J'ai utilisé la solution de Philip Nelson, mais j'ai dû ajouter des devis pour des espaces dans mon nom de fichier:

Python "% Virtual_env% \ scripts \ django-admin.py"% *


0 commentaires

1
votes

Je viens de taper django-admin , sans l'extension de fichier .pypy et travaillé pour moi.


0 commentaires

1
votes

Je devais signaler "global python.exe" à mon virtualenv dans mon projet, donc j'ai créé mon propre activate.cmd xxx

Il modifie l'association type de fichier à l'aide de la commande Windows ' ftype '.


0 commentaires