Je viens de commencer à apprendre Python en utilisant Learning Python de Mark Luts. Dans son livre, il propose un exemple de script simple appelé via le shell Windows. Dans l'exemple, il appelle est la suivante:
C:\code> python script1.py
J'ai modifié les variables d'environnement sur ma machine pour pouvoir appeler
C:\User\Example> python
d'ouvrir l'interprète et je peux aussi appeler quelque chose comme
C:\User\Example> script1
exécuter un script que j'ai écrit et placé dans le répertoire de mon choix. Mon problème est que je ne peux pas appeler
C:\User\Example> python script1.py
dans ma ligne de commande, comme il le fait dans le livre. Il a parlé d'une variable d'environnement PYTHONPATH, cependant, cette variable n'est pas présente sur ma machine. Je n'ai que 'chemin', 'TEMP' et 'TMP'. En particulier, lorsque j'essaie de faire un tel appel, j'obtiens l'erreur
python: can't open file 'script1.py': [Errno 2] No such file or directory
Que dois-je faire pour que ce type de commande fonctionne correctement sur la ligne de commande?
Extrait du livre (p. 44, 4 e éd.):
Enfin, n'oubliez pas de donner le chemin d'accès complet à votre script s'il réside dans un répertoire différent de celui dans lequel vous travaillez.
Pour votre situation, cela signifie utiliser
C:\User\Example> python C:\User\Example\my_scripts\script1.py
Vous pouvez écrire un fichier de commandes qui recherche le script dans un répertoire prédéfini:
@echo off
setlocal
PATH=C:\User\Example\Python36;%PATH%
SCRIPT_DIR=C:\User\Example\my_scripts
python %SCRIPT_DIR\%*
Vous appelez python
dans le contexte de C:\User\Example
et lui transmettez le nom du fichier que vous souhaitez exécuter par le biais de l’interpreter (script1.py
). Il est clair que la variable PATH
est configurée correctement, de sorte que vous pouvez appeler python
de n’importe où sur votre ordinateur, car nous pouvons voir qu’elle est en cours d’exécution mais ne peut pas réellement trouver votre script.
Cependant, vous avez indiqué dans le commentaire que vos scripts sont en réalité situés dans C:\User\Example\my_scripts
. En d'autres termes, vous transmettez à python
le nom d'un fichier qui n'existe pas !! (au moins du contect de C:\User\Example
).
Vous devez être dans le répertoire du script pour que l'exécutable python
puisse le trouver.
Vous pouvez également exécuter la commande python et lui donner plus d'informations sur l'emplacement du script. Par exemple, vous pouvez exécuter python .\my_scripts\script1.py
si vous vous lancez dans le contect de C:\User\Example
et que vos scripts sont au format C:\User\Example\my_scripts
.