web-dev-qa-db-fra.com

Ajouter un chemin Python sous Windows 7

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 commande set, j'ai essayé de l'ajouter via l'invite de modification de l'environnement, etc.

De plus, si je lance la commande set sur la ligne de commande, cette liste

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.

Éditer: Juste pour clarifier, j'ai ajouté le chemin de l'exécutable Python à PATH dans l'environnement d'édition Invite. Ne semble pas fonctionner.

135
rogerklutz
  1. Tenir Win et appuyez sur Pause.
  2. Cliquez sur Paramètres système avancés.
  3. Cliquez sur Variables d'environnement.
  4. Ajoutez ;C:\python27 à la variable Path.
  5. Redémarrez l'invite de commande.
263
melhosseiny

Lors de la définition de variables environnementales dans Windows, je me suis trompé à maintes reprises. Je pensais que je devrais partager ici quelques-unes de mes erreurs passées en espérant que cela pourrait aider quelqu'un . (Elles 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. Supprimez et rouvrez votre fenêtre Shell: Une fois que vous avez modifié les variables ENVIRONMENTAL, vous devez redémarrer la fenêtre sur laquelle vous la testez.
  2. NO SPACES lors de la définition des variables. Assurez-vous d’ajouter le ;C:\Python27 SANS espace. (Il est courant d'essayer C:\SomeOther; C:\Python27 Cet espace () après le point-virgule est pas correct.)
  3. UTILISEZ UN BACKWARD SLASH pour épeler votre chemin complet. Vous verrez des barres obliques lorsque vous essayez echo $PATH, mais seules les barres obliques inversées ont fonctionné pour moi.
  4. NE PAS AJOUTER une dernière barre oblique inverse. Seulement C:\Python27 NON C:\Python27\

J'espère que ça aide quelqu'un. 

110
Ram Narasimhan

Ouvrez cmd . Exe avec des privilèges d’administrateur (clic droit sur l’application). Puis tapez:

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

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

50
kenichi

J'ai un problème avec cela depuis longtemps. Je l'ai ajouté à mon chemin de toutes les manières possibles, mais voici ce qui a finalement fonctionné pour moi:

  1. 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 le "Nouveau" sous les variables système
  6. dans le nom, entrez pythonexe (ou tout ce que vous voulez)
  7. in value entrez le chemin d'accès à votre python (exemple: C:\Python32\)
  8. Maintenant, éditez la variable Path (dans la partie système) et ajoutez %pythonexe%; à la fin de ce qui existe déjà

IDK pourquoi ça marche mais ça a fonctionné pour moi.

ensuite, essayez de taper "python" dans votre ligne de commande et ça devrait marcher!


Modifier:

Dernièrement, j'utilise ce programme qui semble fonctionner assez bien. Il y a aussi celui-ci qui est très joli aussi, même si je ne l'ai jamais essayé.

32
JustGage

Essayez d’ajouter ce fichier python.bat au dossier System32 et la ligne de commande exécutera désormais python lorsque vous saisirez python

python.bat

@C:\Python27\python.exe %*

La source:

https://github.com/KartikTalwar/dotfiles/blob/master/bat/python.bat

16
Kartik

Vous pouvez définir le chemin depuis current cmd window en utilisant la commande PATH =. Cela ne l'ajoutera que pour l'instance actuelle de cmd. 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 devriez aller sur votre instance cmd et mettre PATH=C:/Python27/;%PATH%.

13
Anirudh Ramanathan

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

Bon: Vieux; vieux; vieux; nouveau

Bad: Vieux; vieux; vieux; Nouveau

11
Mike Pateras

Python est livré avec un utilitaire small qui ne fait que ceci . A partir de la ligne de commande, lancez:

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

Assurez-vous de fermer la fenêtre de commande (avec exit ou le bouton de fermeture) et de la rouvrir.

9
Udi

Le programme suivant ajoutera le chemin d’exécutable python et les scripts de sous-répertoire (où sont installés par exemple pip et easy_install) à 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 dans votre environnement. Fonctionne également avec XP (et probablement Vista) . Il n'utilise que les modules fournis avec le programme d'installation Windows de base.

# 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 __== '__main__':
    remove = '--remove' in sys.argv
    script = '--noscripts' not in sys.argv
    extend_path(find_python(), verbose=2, remove=remove, script=script)
8
Anthon

Je sais que cette publication est ancienne, mais j'aimerais ajouter que les solutions reposent sur des privilèges d'administrateur. Si vous n'en avez pas, vous pouvez:

Allez dans le panneau de configuration, tapez 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" ci-dessous.

Vous pouvez, en tant qu’utilisateur, cliquer sur le bouton "Nouveau" situé en haut de la page et ajouter:

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

(pas d'espaces nulle part) et cliquez sur OK. Une fois que votre invite de commande est redémarrée, tout PATH dans les variables utilisateur se trouve ajouté à la fin du chemin système. Il ne remplace pas le PATH d'une autre manière.

Si vous voulez 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 chose et double-cliquez dessus pour le démarrer. Ou un lien vers celui-ci. Ou épingler etc ...

6
carveone

Vous devez apporter des modifications à votre variable système
-- Faites un clic droit sur "Mon ordinateur"
-- 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 de variable utilisateur et de variable système
-- Dans la section variable système, recherchez la variable 'Path', cliquez sur Editer et ajoutez
"C:\Python27;" (sans guillemets) enregistrez-le
-- Ouvrez maintenant le type de ligne de commande 'chemin', appuyez sur Entrée, vous verrez que la variable de chemin a été modifiée
-- Maintenant tapez python --version vous verrez la version python

Et c'est fait

6
Avinash Agrawal

Pour ceux qui tentent d'atteindre cet objectif avec Python 3.3+, le programme d'installation de Windows inclut désormais une option permettant d'ajouter python.exe au chemin de recherche du système. En savoir plus dans les docs .

5

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

Si vous utilisez Chocolatey, vous pouvez l’installer à l’aide de choco install rapidee. Sinon, jetez un œil à http://www.rapidee.com/fr/download 

En relisant cela, cela ressemble à un shill payé, mais je jure que je ne le suis pas! Cela fait juste un des utilitaires les plus utiles de ma boîte à outils depuis un moment et je suis surpris que personne ne semble le savoir.

4
Rob H

Si Python a été installé avec un autre programme, tel que ArcGIS 10.1 dans mon cas, vous devez également inclure tout dossier supplémentaire contenant le chemin d'accès à python.exe dans vos variables d'environnement.

Donc, mes variables d'environnement ressemblent à ceci:

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

3
geominded

J'ai organisé ma variable d'environnement python comme celle-ci sous Win7 64 bits à l'aide de cmd.

J'ai défini la variable PYTHONPATH via la variable d'environnement menu de Windows et ajouté %PYTHONPATH% à la variable PATH:

...;%PYTHONPATH%

Le cmd Shell étend la variable correctement à ceci:

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

N'oubliez pas de redémarrer cmd Shell après avoir modifié PATH.

2
Michel Lawaty

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 dernière barre oblique inversée: C:\Python33\.__ et ainsi cela n’a pas fonctionné sur la commande Invite (j’ai essayé de fermer/ouvrir l’invite plusieurs fois).

J'ai supprimé la dernière barre oblique inverse puis ça a marché: C:\Python33

Merci Ram Narasimhan pour votre conseil n ° 4!

2
Arnaud

Cette question est assez ancienne, mais je viens de rencontrer un problème similaire et ma solution particulière ne figurait pas ici:

Assurez-vous de ne pas avoir dans votre PATH de dossier qui n'existe pas.

Dans mon cas, j’avais un tas de dossiers par défaut (Windows, Powershell, Sql Server, etc.), puis un C:\bin personnalisé que j’utilisais généralement, puis divers autres réglages tels que c:\python17, etc. Il s’avère que le processeur cmd a trouvé ce c:\bin n'existait pas et a ensuite arrêté le traitement du reste de la variable.

De plus, je ne savais pas que j'aurais jamais remarqué cela sans Gestionnaire PATH . Cela a bien mis en évidence le fait que cet élément était invalide.

2
Chris Phillips

Mon système est Windows 7 32 bits, installé Python 2.7.12 (parce que pdfminer ne prend pas en charge Python 3.X .... T ^ T)

Avait le même problème que ma fenêtre de commande reconnaît le mot "python".

Il s'est avéré que dans la variable PATH, ajouté automatiquement une dernière barre oblique inverse: C:\Python33\(identique à Charlie mentionné plus haut)

Supprimez la barre oblique inverse. tout fonctionne bien. 

1
Yikun

écrivez cela sur votre invite de commande:

set Path=%path%

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

set Path=C:/Python27
0
Skiller Dz