web-dev-qa-db-fra.com

Code Visual Studio: exécutez python avec arguments

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.

9
Thyrst'

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.

2
Jotaf

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

enter image description here

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.

enter image description here

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

enter image description here

éditez maintenant le tasks.json pour prendre en charge Python.

  1. Modifiez la propriété Command de "echo" à "Python"
  2. Gardez showOutput comme "Always"
  3. Modifiez les arguments (arguments) de ["Hello World"] à ["${file}"] (nom de fichier)
  4. Supprimez la dernière propriété problemMatcher

  5. Conservez isShellCommand et les propriétés de version inchangées

  6. Enregistrez les modifications apportées

Vous pouvez maintenant ouvrir votre fichier py et l'exécuter correctement avec le raccourci Ctrl+Shift+B.

2
Keshan Nageswaran

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").

1
Ehsan Ahmadi

Si vous utilisez un environnement virtuel, assurez-vous d'utiliser le chemin d'accès complet au python de l'environnement.

0
Micheal Bee