Ajout du chemin Python sur Windows 7

138

J'ai essayé d'ajouter le chemin Python à la ligne de commande sous Windows 7, mais quelle que soit la méthode que j'essaie, rien ne semble fonctionner. J'ai utilisé la setcommande, j'ai essayé de l'ajouter via l'invite Modifier les variables d'environnement, etc.

De plus, si j'exécute la commande set sur la ligne de commande, elle répertorie ceci

python = c:\python27

Pourtant, il ne reconnaît toujours pas la commande Python.

La lecture de la documentation et de diverses autres sources n'a pas semblé aider.

Edit: Juste pour clarifier davantage, j'ai ajouté le chemin de l'exécutable Python à PATH dans l'invite d'édition de l'environnement. Cela ne semble pas fonctionner.

rogerklutz
la source
L'exécutable se trouve-t-il dans ce répertoire? N'y at-il pas un répertoire bin à l'intérieur?
Anirudh Ramanathan
@ anirudh4444 Non, c'est dans ce répertoire ...
rogerklutz
Vous pouvez obtenir les deux GUIet l' Command Lineoption à partir d'ici stackoverflow.com/a/38141751/5409601
Rafayet Ullah
Bien que cela ne soit pas valable pour vous, avec Python 3.6 Windows Installer (et potentiellement les versions antérieures), vous pouvez choisir de "Personnaliser" votre installation et il y a une case à cocher pour ajouter Python à votre chemin.
paulhauner

Réponses:

266
  1. Maintenez Winet appuyez sur Pause.
  2. Cliquez sur Paramètres système avancés.
  3. Cliquez sur Variables d'environnement.
  4. Ajouter ;C:\python27à la Pathvariable.
  5. Redémarrez l'invite de commande.
melhosseiny
la source
2
Ouais, je l'ai déjà fait. Désolé si je n'ai pas
précisé
11
Assurez-vous que vous ne disposez d'aucun espace dans vos variables python et de chemin.
Yossi
4
@rogerklutz: Assurez-vous simplement d'ajouter "; C: \ python27" à la variable PATH qui existe déjà, et de ne pas créer une nouvelle variable avec "C: \ python27" comme valeur.
wassimans
5
Dans de nombreux cas, vous devez également vous déconnecter et vous reconnecter après avoir défini la variable Path.
dk123
Souffrant d'un problème similaire, avait tout fait sauf l'étape 5 ... Merci d'avoir inclus cela.
ReiMasuro
112

Lors de la configuration des variables d'environnement dans Windows, je me suis trompé à de très nombreuses reprises. J'ai pensé que je devrais partager quelques-unes de mes erreurs passées ici en espérant que cela pourrait aider quelqu'un. (Celles-ci s'appliquent à toutes les variables d'environnement, pas seulement lors de la définition du chemin Python)

Méfiez-vous de ces erreurs possibles:

  1. Tuez et rouvrez votre fenêtre shell: Une fois que vous avez apporté une modification aux variables ENVIRONNEMENTALES, vous devez redémarrer la fenêtre sur laquelle vous le testez.
  2. PAS D'ESPACES lors de la définition des variables. Assurez-vous que vous ajoutez le ;C:\Python27SANS espace. (Il est courant d'essayer C:\SomeOther; C:\Python27que l'espace (␣) après le point-virgule ne convient pas.)
  3. UTILISATION Une barre oblique inverse lorsque l' orthographe de votre chemin complet. Vous verrez des barres obliques lorsque vous essayez, echo $PATHmais seules les barres obliques inverses ont fonctionné pour moi.
  4. N'AJOUTEZ PAS de barre oblique inverse finale . Seulement C:\Python27PASC:\Python27\

J'espère que cela aide quelqu'un.

Ram Narasimhan
la source
1
La raison pour laquelle j'ai choisi cette réponse est que la plupart du temps, le PATH est cassé à cause de l'une de ces 4 choses. La partie la plus facile est de le faire correctement, la partie la plus difficile est de remarquer que vous ne l'avez pas fait correctement!
grettke
1
La commande echo $pathn'est valide que si vous exécutez un shell bash sous Windows (par exemple MinGW). La commande d'invite de commande Windows estecho %path%
Bruce Peterson
2
Je n'ai pas trouvé le contrecoup de fuite problématique. Est-ce que je manque quelque chose?
mystrdat
51

Ouvrez cmd .exe avec les privilèges d'administrateur (clic droit sur l'application). Tapez ensuite:

chemin setx "% chemin%; C: \ Python27;"

N'oubliez pas de terminer par un point-virgule et de ne pas inclure de barre oblique à la fin.

Kenichi
la source
3
+ 1- Cela vous permet d'ajouter au chemin sans avoir besoin de privilèges d'administrateur. Cependant, je ne suis pas sûr que le% path% soit nécessaire. Sur mon système Windows 7, les nouvelles fenêtres cmd ont maintenant deux copies des chemins précédents.
Paul Lynch
32

J'ai un problème avec ça depuis LONGTEMPS. Je l'ai ajouté à mon chemin de toutes les manières auxquelles je pouvais penser, mais voici ce qui a finalement fonctionné pour moi:

  1. Faites un clic droit sur "Mon ordinateur"
  2. Cliquez sur "Propriétés"
  3. Cliquez sur "Paramètres système avancés" dans le panneau latéral
  4. Cliquez sur "Variables d'environnement"
  5. Cliquez sur "Nouveau" sous les variables système
  6. dans le nom entrezpythonexe (ou tout ce que vous voulez)
  7. en valeur entrer dans le chemin de votre python (exemple: C:\Python32\)
  8. Modifiez maintenant la variable Path (dans la partie système) et ajoutez %pythonexe%;à la fin de ce qui existe déjà

IDK pourquoi cela fonctionne mais cela a fonctionné pour moi.

puis essayez de taper "python" dans votre ligne de commande et cela devrait fonctionner!


Éditer:

Dernièrement, j'utilise ce programme qui semble bien fonctionner. Il y a aussi celui qui a l'air plutôt bien, même si je ne l'ai jamais essayé.

JustGage
la source
14

Vous pouvez définir le chemin à partir de la fenêtre cmd actuelle à l'aide de la PATH =commande. Cela ne l'ajoutera que pour l'instance cmd actuelle. si vous souhaitez l'ajouter de façon permanente, vous devez l'ajouter aux variables système. (Ordinateur> Paramètres système avancés> Variables d'environnement)

Vous accéderiez à votre instance cmd et la mettriez PATH=C:/Python27/;%PATH%.

Anirudh Ramanathan
la source
Cette solution a fonctionné pour moi sur Win7 Pro. Testé avec echo %PATH~%.
Igor
11

Assurez-vous de ne pas ajouter d'espace avant le nouveau répertoire.

Bon: ancien; ancien; ancien; nouveau

Mauvais: vieux; vieux; vieux; Nouveau

Mike Pateras
la source
9

Python est livré avec un petit utilitaire qui fait exactement cela . À partir de la ligne de commande, exécutez:

c:\python27\tools\scripts\win_add2path.py

Assurez-vous de fermer la fenêtre de commande (avec exitou le bouton de fermeture) et de l'ouvrir à nouveau.

Udi
la source
1
Quant à moi, cela change le registre mais aucune application ne sera affectée tant que vous ne confirmerez pas manuellement les modifications via la boîte de dialogue GUI std. Le redémarrage d'une application n'aide pas. Il semble qu'une sorte de diffusion soit également nécessaire.
Pavel Vlasov
Cela a fonctionné pour moi sur 8.1 et semble plus facile que d'autres approches. Une fenêtre / boîte s'ouvre et vous demande ce que vous voulez exécuter. Sélectionnez Autre, puis revenez à c: \ python27 et choisissez l'exécutable python (.exe). L'effet semble permanent, vous ne devez donc le faire qu'une seule fois. Vous devrez exécuter win_add2path.py pour chaque utilisateur mais vous n'obtiendrez pas la boîte après la première fois.
user2099484
8

Le programme suivant ajoutera le chemin de l'exécutable python et les sous-répertoires Scripts (où par exemple pip et easy_install sont installés) à votre environnement. Il trouve le chemin d'accès à l'exécutable python à partir de la clé de registre liant l'extension .py. Cela supprimera les anciens chemins python de votre environnement. Fonctionne également avec XP (et probablement Vista). Il utilise uniquement les modules fournis avec le programme d'installation de base de Windows.

# coding: utf-8

import sys
import os
import time
import _winreg
import ctypes

def find_python():
    """
    retrieves the commandline for .py extensions from the registry
    """
    hKey = _winreg.OpenKey(_winreg.HKEY_CLASSES_ROOT,
                           r'Python.File\shell\open\command')
    # get the default value
    value, typ = _winreg.QueryValueEx (hKey, None)
    program = value.split('"')[1]
    if not program.lower().endswith(r'\python.exe'):
        return None
    return os.path.dirname(program)

def extend_path(pypath, remove=False, verbose=0, remove_old=True,
                script=False):
    """
    extend(pypath) adds pypath to the PATH env. variable as defined in the
    registry, and then notifies applications (e.g. the desktop) of this change.
    !!! Already opened DOS-Command prompts are not updated. !!!
    Newly opened prompts will have the new path (inherited from the 
    updated windows explorer desktop)
    options:
    remove (default unset), remove from PATH instead of extend PATH
    remove_old (default set), removes any (old) python paths first
    script (default unset), try to add/remove the Scripts subdirectory 
        of pypath (pip, easy_install) as well
    """
    _sd = 'Scripts' # scripts subdir
    hKey = _winreg.OpenKey (_winreg.HKEY_LOCAL_MACHINE,
               r'SYSTEM\CurrentControlSet\Control\Session Manager\Environment',
               0, _winreg.KEY_READ | _winreg.KEY_SET_VALUE)

    value, typ = _winreg.QueryValueEx (hKey, "PATH")
    vals = value.split(';')
    assert isinstance(vals, list)
    if not remove and remove_old:
        new_vals = []
        for v in vals:
            pyexe = os.path.join(v, 'python.exe')
            if v != pypath and os.path.exists(pyexe):
                if verbose > 0:
                    print 'removing from PATH:', v
                continue
            if script and v != os.path.join(pypath, _sd) and \
               os.path.exists(v.replace(_sd, pyexe)):
                if verbose > 0:
                    print 'removing from PATH:', v
                continue
            new_vals.append(v)
        vals = new_vals
    if remove:
        try:
            vals.remove(pypath)
        except ValueError:
            if verbose > 0:
                print 'path element', pypath, 'not found'
            return
        if script:
            try:
                vals.remove(os.path.join(pypath, _sd))
            except ValueError:
                pass
            print 'removing from PATH:', pypath
    else:
        if pypath in vals:
            if verbose > 0:
                print 'path element', pypath, 'already in PATH'
            return
        vals.append(pypath)
        if verbose > 1:
            print 'adding to PATH:', pypath
        if script:
            if not pypath + '\\Scripts' in vals:
                vals.append(pypath + '\\Scripts')
            if verbose > 1:
                print 'adding to PATH:', pypath + '\\Scripts'
    _winreg.SetValueEx(hKey, "PATH", 0, typ, ';'.join(vals) )
    _winreg.SetValueEx(hKey, "OLDPATH", 0, typ, value )
    _winreg.FlushKey(hKey)
    # notify other programs
    SendMessage = ctypes.windll.user32.SendMessageW
    HWND_BROADCAST = 0xFFFF
    WM_SETTINGCHANGE = 0x1A
    SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, u'Environment')
    if verbose > 1:
        print 'Do not forget to restart any command prompts'

if __name__ == '__main__':
    remove = '--remove' in sys.argv
    script = '--noscripts' not in sys.argv
    extend_path(find_python(), verbose=2, remove=remove, script=script)
Anthon
la source
Cela a ruiné mon CHEMIN. Voici une version corrigée (j'ai également supprimé remove_old, ce qui est impossible * de faire correctement): gist.github.com/anonymous/fb5d176ab91dccbd0ebd * yes
Aur Saraf
6

Je sais que cet article est ancien, mais j'aimerais ajouter que les solutions supposent des privilèges administratifs. Si vous n'en avez pas, vous pouvez:

Allez dans le panneau de configuration, tapez le chemin (c'est Windows 7 maintenant donc c'est dans la zone de recherche) et cliquez sur "Modifier les variables d'environnement pour votre compte". Vous verrez maintenant la boîte de dialogue Variable d'environnement avec "Variables utilisateur" en haut et "Variables système" en dessous.

Vous pouvez, en tant qu'utilisateur, cliquer sur le bouton supérieur "Nouveau" et ajouter:

Nom de la variable: PATH
Valeur de la variable: C: \ Python27

(aucun espace nulle part) et cliquez sur OK. Une fois votre invite de commande redémarrée, tout PATH dans les variables utilisateur est ajouté à la fin du chemin système. Il ne remplace en aucun cas le PATH.

Si vous souhaitez configurer un chemin complet spécifique, vous feriez mieux de créer un fichier de commandes comme celui-ci:

@echo off
PATH C:\User\Me\Programs\mingw\bin;C:\User\Me\Programs;C:\Windows\system32
title Compiler Environment - %Username%@%Computername%
cmd

Appelez-le "compiler.bat" ou autre et double-cliquez pour le démarrer. Ou un lien vers celui-ci. Ou épinglez-le etc ...

carveone
la source
6

Vous devez apporter des modifications à votre variable système
- Cliquez avec le bouton droit sur "Poste de travail"
- Cliquez sur "Propriétés"
- Cliquez sur "Paramètres système avancés" dans le panneau latéral
- Cliquez sur Variable d'environnement - Vous aurez deux sections d'utilisateur variable et variable système
- Dans la section des variables système, recherchez la variable `` Chemin '', cliquez sur modifier et ajoutez
"C:\Python27;"(sans guillemets) enregistrez-la
- Maintenant, ouvrez le type de ligne de commande `` chemin '' appuyez sur Entrée, vous verrez que la variable de chemin a été modifiée
- Tapez maintenantpython --version vous verrez la version python

Et c'est fait

Avinash Agrawal
la source
5

Pour tous ceux qui essaient d'y parvenir avec Python 3.3+, le programme d'installation de Windows inclut désormais une option pour ajouter python.exe au chemin de recherche du système. En savoir plus dans la documentation .

Andreas Bergström
la source
1
C'est ce que j'ai utilisé, car j'avais du mal à trouver le chemin exact de l'installation. Démarrez le programme d'installation, appuyez sur `` Modifier '', puis sur les fonctionnalités facultatives, cliquez sur suivant, puis cochez la case pour ajouter Python au chemin système et appuyez sur Terminer.
Rishi
4

Travailler avec des variables d'environnement Windows est toujours une expérience horrible. Récemment, j'ai trouvé un outil étonnant appelé Rapid Environment Editor, qui donne une interface graphique extrêmement simple pour les gérer.

Si vous utilisez Chocolatey, vous pouvez l'installer en utilisant choco install rapidee. Sinon, jetez un œil à http://www.rapidee.com/en/download

En relisant ceci, cela ressemble à un shill payé, mais je jure que je ne le suis pas! C'est juste l'un des utilitaires les plus utiles de ma boîte à outils depuis un certain temps et je suis surpris que personne ne semble le savoir.

Rob H
la source
3

Si Python a été installé avec un autre programme, comme ArcGIS 10.1 dans mon cas, vous devez également inclure tous les dossiers supplémentaires qui mènent à python.exe dans vos variables d'environnement.

Donc, mes variables d'environnement ressemblent à ceci:

Variables système> Chemin> ajouter ;C:\Python27\ArcGIS10.1

géomind
la source
2

Cette question est assez ancienne, mais je viens de rencontrer un problème similaire et ma solution particulière n'était pas répertoriée ici:

Assurez-vous que vous n'avez pas de dossier dans votre PATH qui n'existe pas.

Dans mon cas, j'ai eu un tas de dossiers par défaut (Windows, Powershell, Sql Server, etc.), puis une coutume C:\binque j'utilise généralement, puis d'autres tweaks aime c:\python17, etc. Il se trouve que le processeur cmd était de trouver que c:\bindidn 'n'existe pas et a ensuite arrêté de traiter le reste de la variable.

De plus, je ne sais pas si j'aurais jamais remarqué cela sans le gestionnaire PATH . Cela a bien mis en évidence le fait que cet élément n'était pas valide.

Chris Phillips
la source
2

Je viens d'installer Python 3.3 sur Windows 7 en utilisant l'option "ajouter python à PATH".

Dans la variable PATH, le programme d'installation a automatiquement ajouté une barre oblique inverse finale : C:\Python33\ et cela n'a donc pas fonctionné à l'invite de commande (j'ai essayé de fermer / ouvrir l'invite plusieurs fois)

J'ai supprimé la barre oblique inverse finale , puis cela a fonctionné:C:\Python33

Merci Ram Narasimhan pour votre conseil n ° 4!

Arnaud
la source
2

J'ai organisé ma variable d'environnement python comme ceci sous Win7 64 bits en utilisant cmd.

J'ai défini la variable PYTHONPATHvia le menu des variables d'environnement de Windows et ajouté %PYTHONPATH%à la PATHvariable:

...;%PYTHONPATH%

Le shell cmd étend correctement la variable à ceci:

C:\>echo %PYTHONPATH%
C:\python27;c:\python27\lib;C:\python27\scripts

N'oubliez pas de redémarrer le shell cmd après avoir changé PATH.

Michel Lawaty
la source
0

écrivez cela sur votre invite de commande:

set Path=%path%

Remplacez% path% par le chemin de votre dossier Python Exemple:

set Path=C:/Python27
Skiller Dz
la source
-2

Si vous êtes frustré en définissant le chemin du python, téléchargez simplement la nouvelle version de python, désinstallez l'ancienne version de python et lors de l'installation de la nouvelle version, il vous demandera s'il faut définir le chemin et l'installer.

c'est le meilleur moyen

Pavan Purohit
la source