Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1634 connectés 

  FORUM HardWare.fr
  Windows & Software
  Win 7

  console windows - set environnement pour python

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

console windows - set environnement pour python

n°3351740
xilebo
noone
Posté le 02-09-2019 à 13:29:25  profilanswer
 

Bonjour,
 
 
Je me retrouve un peu con face à un problème normalement simple. Je précise que je suis essentiellement utilisateur linux en mode console, donc je ne connais pas bien celle de windows.
 
Je dois travailler avec un environnement python sous windows , et je voudrais créer un batch qui me démarre automatiquement une console ( avec un prompt ) préalablement initialisé avec un script virtualenv python.
 
En gros, avec python, lorsque je crée un virtualenv, il me crée un activate.bat dans lequel il met en place un environnement isolé sous forme de variable d'environnement. Or, si je lance le activate.bat, cela m'ouvre une console, exécute l'ensemble du script puis cela quitte la console.
 
Si par contre j'ouvre une console avec cmd, et que je drag&drop le activate.bat dans la console, cela m'exécute bien le script, et je récupère la main avec l'environnement initialisé.
 
Ma question est simple : comment faire ça en faisant un raccourci sur le bureau  :pt1cable:  
 
Par exemple, si je crée un .bat contenant cela :


d:
cd d:/path/to/env/
./activate.bat


 
et que je double clique dessus, comment faire pour que ça m'ouvre la console, que ça aille dans le bon path,puisque ça me sette l'environnement, et enfin ça me rend la main pour que je puisse ensuite taper des commandes sur le prompt ? C'est cette dernière étape qui ne se fait pas, la fenêtre se ferme avant.
 
Merci d'avance  :jap:  
 
( je sens que je vais me trouver con en lisant la réponse ).

mood
Publicité
Posté le 02-09-2019 à 13:29:25  profilanswer
 

n°3351749
hadrial
Posté le 02-09-2019 à 16:56:28  profilanswer
 

Code :
  1. echo "prout"
  2. cmd /k

n°3351786
xilebo
noone
Posté le 03-09-2019 à 08:47:59  profilanswer
 

Merci :)
 
Ca marche quasiment, mais quand j'appelle le script généré par python pour activer le virtualenv, ca se quitte quand même.
 
Le script contient ceci :  
 


@echo off
 
set "VIRTUAL_ENV=C:\Users\frederic.mazur\Envs\env_37"
 
if defined _OLD_VIRTUAL_PROMPT (
    set "PROMPT=%_OLD_VIRTUAL_PROMPT%"
) else (
    if not defined PROMPT (
        set "PROMPT=$P$G"
    )
    if not defined VIRTUAL_ENV_DISABLE_PROMPT (
        set "_OLD_VIRTUAL_PROMPT=%PROMPT%"
    )
)
if not defined VIRTUAL_ENV_DISABLE_PROMPT (
    set "PROMPT=(env_37) %PROMPT%"
)
 
REM Don't use () to avoid problems with them in %PATH%
if defined _OLD_VIRTUAL_PYTHONHOME goto ENDIFVHOME
    set "_OLD_VIRTUAL_PYTHONHOME=%PYTHONHOME%"
:ENDIFVHOME
 
set PYTHONHOME=
 
REM if defined _OLD_VIRTUAL_PATH (
if not defined _OLD_VIRTUAL_PATH goto ENDIFVPATH1
    set "PATH=%_OLD_VIRTUAL_PATH%"
:ENDIFVPATH1
REM ) else (
if defined _OLD_VIRTUAL_PATH goto ENDIFVPATH2
    set "_OLD_VIRTUAL_PATH=%PATH%"
:ENDIFVPATH2
 
set "PATH=%VIRTUAL_ENV%\Scripts;%PATH%"
:: In case user makes changes to PYTHONPATH
if defined _OLD_VIRTUAL_PYTHONPATH (
    set "PYTHONPATH=%_OLD_VIRTUAL_PYTHONPATH%"
) else (
    set "_OLD_VIRTUAL_PYTHONPATH=%PYTHONPATH%"
)


 
Si je mets le cmd /k à la fin, cela fonctionne, mais cela veut dire que je modifie le script généré par python/virtualenv, je ne suis pas sûr que ce soit la meilleure chose.
 
J'aurais voulu faire un truc du genre :
 
1) le script ci-dessus se trouve dans le fichier activate.bat
2) je crée un fichier start.bat contenant les choses suivantes
 


d:
cd d:/path/to/directory
"c:/users/me/envs/env_37/scripts/activate.bat"
cmd /k


 
sauf que ca ne marche pas car à l'appel de la 3eme ligne la fenetre quitte sans même passer par le cmd /k

n°3351789
xilebo
noone
Posté le 03-09-2019 à 08:49:37  profilanswer
 

ok, il suffit de mettre "call" devant "c:\users...".  
 
Merci de ton aide  :jap:

n°3351816
Trit'
Posté le 03-09-2019 à 12:12:05  profilanswer
 

d:
cd d:\path\to\directory
"c:\users\me\envs\env_37\scripts\activate.bat"
cmd /k


Juste pour info : sous Windows, le séparateur de chemin est l’antislash « \ », pas le slash normal. Certes, Windows (et DOS avant lui) sont heureusement capables de convertir ça comme il faut, mais faut quand même évite de les confondre : le slash est avant tout un caractère utilisé pour préciser un paramètre : « /t », « /activate »…


Message édité par Trit' le 03-09-2019 à 12:12:55

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Windows & Software
  Win 7

  console windows - set environnement pour python

 

Sujets relatifs
Windows et hdd réservé au systémeVersion la plus légère de windows (10 ou server)?
Installation propre Windows 10 FamilleRécupérer licence Windows 10
probléme démarrage windows 10, j'ai 2 comptes qui s'affichent + erreurWindows 7 n’arrête pas de changer de disposition de clavier
Ré-installation complète de Windows 7 et de ses pilotesVLC déconne. Windows 7.
Windows 10, gouffre à RAM ?Désactivation de mon Windows 10
Plus de sujets relatifs à : console windows - set environnement pour python


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR