web-dev-qa-db-fra.com

Un script Python qui active le virtualenv puis exécute un autre script Python?

Sur Windows Vista, j'ai besoin d'un script qui démarre le script activate (pour activer le virtualenv) dans:

C:\Users\Admin\Desktop\venv\Scripts\

Et plus tard, dans l'environnement virtuel, commence à manage.py runserver dans le dossier:

C:\Users\Admin\Desktop\helloworld\

Comment dois-je faire? Quels modules dois-je utiliser?

31
ugavetheroses

Vous pouvez activer votre virtualenv puis démarrer le serveur à l'aide d'un fichier bat. Copiez ce script dans un fichier et enregistrez-le avec l'extension .bat (par exemple, runserver.bat)

@echo off
cmd /k "cd /d C:\Users\Admin\Desktop\venv\Scripts & activate & cd /d    C:\Users\Admin\Desktop\helloworld & python manage.py runserver"

Ensuite, vous pouvez simplement exécuter ce fichier bat (double-cliquez simplement) pour démarrer le serveur

46
Ashish Gupta

runserver.bat:

 CALL [your path]\Scripts\activate.bat
 python manage.py runserver
9
Weihui Guo

Si vous voulez appeler virtualenv'ed Python directement, vous pouvez faire quelque chose comme ceci:

 C:\Users\Admin\Desktop\venv\Scripts\bin\python.exe manage.py runserver

Revérifier python.exe emplacement sur votre dossier virtualenv - ne me souviens pas comment il est hors de ma tête. Ce Python s'associe au virtualenv et utilise son site-packages par défaut.

7
Mikko Ohtamaa

Plutôt que d'utiliser des chaînes, vous pouvez utiliser un signe d'insertion (^) comme décrit dans cette question: commandes longues réparties sur plusieurs lignes dans le fichier batch (.bat) de Windows Vista

Par exemple.

cmd /k cd path/to/activate ^
activate.bat
pip uninstall --yes package ^
pip install git+https://git.server.com/user/project@remote/branch ^
deactivate

va ouvrir un venv et désinstaller et réinstaller une branche d'un référentiel Git. Il s'agit d'un modèle utile pour automatiser le déploiement de code dans un venv.

1
phil_20686