Existe-t-il un moyen simple d'exécuter un fichier python dans le code VS avec des arguments?
Je sais que je peux ajouter une configuration personnalisée dans le launch.json
fichier avec le mot clé args
. Cependant, il est ennuyeux de modifier le launch.json
à chaque fois juste parce que je veux utiliser des arguments différents.
Une solution consiste à demander à votre script de demander les arguments de ligne de commande (dans la console VSCode interne).
Cela peut être rendu beaucoup plus utilisable en s'appuyant sur readline , ce qui vous permet de faire des choses comme appuyer sur la touche flèche haut pour parcourir les commandes précédentes (historique des commandes), et plus encore. Un exemple:
import argparse, readline
def main():
# ask for additional command line arguments if needed (for VSCode)
parser = argparse.ArgumentParser()
parser.add_argument('--interactive', action='store_true', default=False)
(args, rest) = parser.parse_known_args()
if args.interactive:
try: readline.read_history_file()
except: pass
rest += input("Arguments: ").split(" ") # get input args
try: readline.write_history_file()
except: pass
# your other script arguments go here
parser.add_argument("-output-dir", default="/out")
# ...
args = parser.parse_args(rest)
print(args)
if __name__ == "__main__":
main()
Ensuite, configurez simplement VSCode pour toujours passer le --interactive
argument, et votre script demandera toujours des arguments (avec l'historique!) même lorsque vous définissez des points d'arrêt.
Vous pouvez ajouter une tâche personnalisée pour ce faire. Il s'agit du tasks.json
. Vous pouvez ajouter un fichier tasks.json par défaut pour votre projet (dossier de projet). Suivez ces étapes. Appuyez sur le clavier Ctrl+Shift+B Il affichera la fenêtre contextuelle suivante
Clique sur le Configure Build Task
S'il existe déjà un fichier tâches.json personnalisé créé à l'emplacement suivant .vscode/tasks.json
L'éditeur l'ouvrira, sinon il donnera une liste déroulante de suggestions de coureurs de tâches déjà existants.
Notre intention est de créer un fichier tasks.json personnalisé pour notre projet. Pour en créer un, nous devons sélectionner l'option Others
dans la liste déroulante. Vérifiez la capture d'écran ci-dessous.
Une fois que vous avez sélectionné l'option Others
, vous pouvez voir une valeur par défaut tasks.json
sera créé à partir du répertoire racine du projet à l'emplacement suivant .vscode/tasks.json
Ci-dessous un exemple de tasks.json
éditez maintenant le tasks.json
pour prendre en charge Python.
"echo"
à "Python"
"Always"
["Hello World"]
à ["${file}"]
(nom de fichier)Supprimez la dernière propriété problemMatcher
Conservez isShellCommand et les propriétés de version inchangées
Enregistrez les modifications apportées
Vous pouvez maintenant ouvrir votre fichier py et l'exécuter correctement avec le raccourci Ctrl+Shift+B.
Si vous n'avez pas de fichier task.json dans votre projet, vous pouvez en créer un nouveau en appuyant sur Ctrl + Maj + B puis choisissez la première option qui vous est présentée puis remplacez-les tous ci-dessous
{
// See https://go.Microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "run python with argument",
"type": "Shell",
"command": "python PROGRAM_NAME.py ARG1 ARG2 ...",
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
sinon, ajoutez la configuration ci-dessus dans votre tâches.json.
Remplacez PROGRAM_NAME dans la configuration ci-dessus par votre nom de programme et ARG1 ARG2 ... indiquez vos arguments spécifiques.
Après tout, vous pouvez exécuter votre tâche créée avec CTRL + MAJ + B et choisir une nouvelle tâche "exécuter python avec argument").
Si vous utilisez un environnement virtuel, assurez-vous d'utiliser le chemin d'accès complet au python de l'environnement.