Agregar Python Path en Windows 7

138

He estado tratando de agregar la ruta de Python a la línea de comandos en Windows 7, pero no importa el método que intente, nada parece funcionar. He usado el setcomando, he intentado agregarlo a través del indicador Editar variables de entorno, etc.

Además, si ejecuto el comando set en la línea de comando, enumera esto

python = c:\python27

Sin embargo, todavía no reconoce el comando Python.

Leer la documentación y varias otras fuentes no parecen ayudar.

Editar: solo para aclarar más, he agregado la ruta del ejecutable de Python a PATH en la solicitud del entorno de edición. No parece funcionar

rogerklutz
fuente
¿El ejecutable se encuentra dentro de ese directorio? ¿No hay algún directorio bin dentro de eso?
Anirudh Ramanathan
@ anirudh4444 No, está en ese directorio ...
rogerklutz
Puede obtener ambos GUIy la Command Lineopción desde aquí stackoverflow.com/a/38141751/5409601
Rafayet Ullah
Si bien no es válido para usted, con el Instalador de Windows Python 3.6 (y las versiones potencialmente anteriores) puede elegir "Personalizar" su instalación y hay una casilla de verificación para agregar Python a su ruta.
paulhauner

Respuestas:

266
  1. Sostenga Winy presione Pause.
  2. Haga clic en Configuración avanzada del sistema.
  3. Haga clic en Variables de entorno.
  4. Anexar ;C:\python27a la Pathvariable.
  5. Reinicie el símbolo del sistema.
melhosseiny
fuente
2
Sí, ya lo hice. Lo siento si no hice eso más claro en la pregunta original
rogerklutz
11
Asegúrese de no tener espacios en sus variables de ruta y python.
Yossi
44
@rogerklutz: Solo asegúrese de agregar "; C: \ python27" a la variable PATH que ya existe, y no crear una nueva variable con "C: \ python27" como valor.
wassimans
55
En muchos casos, también debe cerrar sesión y volver a iniciarla después de configurar la variable Ruta.
dk123
Sufriendo un problema similar, había hecho todo menos el paso 5 ... Gracias por incluir eso.
ReiMasuro
112

Al configurar las variables ambientales en Windows, me he equivocado en muchas, muchas ocasiones. Pensé que debería compartir algunos de mis errores pasados ​​aquí con la esperanza de que podría ayudar a alguien. (Esto se aplica a todas las Variables ambientales, no solo al configurar Python Path)

Cuidado con estos posibles errores:

  1. Elimine y vuelva a abrir su ventana de shell: una vez que realice un cambio en las Variables AMBIENTALES, debe reiniciar la ventana en la que lo está probando.
  2. SIN ESPACIOS al configurar las variables. Asegúrese de agregar el ;C:\Python27SIN SIN espacios. (Es común intentar C:\SomeOther; C:\Python27ese espacio (␣) después del punto y coma no está bien).
  3. UTILICE UN SLASH HACIA ATRÁS cuando deletree su ruta completa. Verá barras inclinadas hacia adelante cuando lo intente, echo $PATHpero solo las barras hacia atrás me han funcionado.
  4. NO AGREGUE una barra invertida final . Solo C:\Python27NOC:\Python27\

Espero que esto ayude a alguien.

Ram Narasimhan
fuente
1
La razón por la que elegí esta respuesta es que la mayoría de las veces el PATH se rompe debido a una de estas 4 cosas. ¡La parte fácil es hacerlo correctamente, la parte difícil es darse cuenta cuando lo hiciste incorrectamente!
grettke
1
El comando echo $pathsolo es válido si está ejecutando un shell bash en Windows (por ejemplo, MinGW). El comando de comando de Windows esecho %path%
Bruce Peterson
2
No he encontrado que la reacción negativa sea problemática. ¿Me estoy perdiendo de algo?
mystrdat
51

Abra cmd .exe con privilegios de administrador (haga clic derecho en la aplicación). Luego escriba:

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

Recuerde terminar con un punto y coma y no incluya una barra inclinada final.

kenichi
fuente
3
+ 1- Esto le permite agregar a la ruta sin necesidad de privilegios de administrador. Sin embargo, no estoy seguro de que se necesite% path%. En mi sistema Windows 7, las nuevas ventanas cmd ahora tienen dos copias de las rutas anteriores.
Paul Lynch
32

He tenido un problema con esto por MUCHO tiempo. Lo agregué a mi camino en todas las formas en que podía pensar, pero esto es lo que finalmente funcionó para mí:

  1. Haga clic derecho en "Mi computadora"
  2. Haga clic en "Propiedades"
  3. Haga clic en "Configuración avanzada del sistema" en el panel lateral
  4. Haga clic en "Variables de entorno"
  5. Haga clic en "Nuevo" debajo de las variables del sistema
  6. en nombre ingresepythonexe (o lo que quiera)
  7. en el valor de entrar en el camino a su pitón (ejemplo: C:\Python32\)
  8. Ahora edite la variable Ruta (en la parte del sistema) y agregue %pythonexe%;al final de lo que ya está allí

IDK por qué esto funciona, pero lo hizo para mí.

luego intente escribir "python" en su línea de comando y ¡debería funcionar!


Editar:

Últimamente he estado usando este programa que parece funcionar bastante bien. También está este que se ve bastante bien, aunque nunca lo he probado.

JustGage
fuente
14

Puede establecer la ruta desde la ventana de cmd actual con el PATH =comando Eso solo lo agregará para la instancia de cmd actual. Si desea agregarlo permanentemente, debe agregarlo a las variables del sistema. (Computadora> Configuración avanzada del sistema> Variables de entorno)

Irías a tu instancia de cmd y la pondrías PATH=C:/Python27/;%PATH%.

Anirudh Ramanathan
fuente
Esta solución me funcionó en Win7 Pro. Probado con echo %PATH~%.
Igor
11

Asegúrese de no agregar un espacio antes del nuevo directorio.

Bueno: viejo; viejo; viejo; nuevo

Malo: viejo; viejo; viejo; nuevo

Mike Pateras
fuente
9

Python viene con una pequeña utilidad que hace exactamente esto . Desde la línea de comando ejecute:

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

Asegúrese de cerrar la ventana de comandos (con exitel botón o cerrar) y ábralo nuevamente.

Udi
fuente
1
En cuanto a mí, cambia el registro, pero ninguna aplicación se verá afectada hasta que confirmes manualmente los cambios a través del diálogo de interfaz gráfica de usuario estándar. Reiniciar una aplicación no ayuda. Parece que también se necesita un tipo de transmisión.
Pavel Vlasov
Esto funcionó para mí en 8.1 y parece más fácil que otros enfoques. Se abre una ventana / cuadro y le pregunta qué desea ejecutar. Seleccione Otro y luego vuelva a c: \ python27 y elija el ejecutable de Python (.exe). El efecto parece ser permanente, por lo que debe hacerlo solo una vez. Deberá ejecutar win_add2path.py para cada usuario, pero no obtiene el cuadro después de la primera vez.
user2099484
8

El siguiente programa agregará la ruta ejecutable de Python y los scripts de subdirección (que es donde, por ejemplo, se instalan pip y easy_install) a su entorno. Encuentra la ruta al ejecutable de Python desde la clave de registro que vincula la extensión .py. Eliminará las antiguas rutas de Python en su entorno. Funciona con XP (y probablemente Vista) también. Solo usa módulos que vienen con el instalador básico 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
fuente
Esto arruinó mi camino. Aquí hay una versión fija (también eliminé remove_old, que es imposible * acertar): gist.github.com/anonymous/fb5d176ab91dccbd0ebd * yes
Aur Saraf
6

Sé que esta publicación es antigua, pero me gustaría agregar que las soluciones suponen privilegios de administrador. Si no tienes esos, puedes:

Vaya al panel de control, escriba path (ahora es Windows 7, así que está en el cuadro de búsqueda) y haga clic en "Editar variables de entorno para su cuenta". Ahora verá el cuadro de diálogo Variable de entorno con "Variables de usuario" en la parte superior y "Variables del sistema" a continuación.

Como usuario, puede hacer clic en el botón superior "Nuevo" y agregar:

Nombre de la variable: RUTA
Valor de la variable: C: \ Python27

(sin espacios en ninguna parte) y haga clic en Aceptar. Una vez que se reinicia el símbolo del sistema, se agrega cualquier RUTA en las variables de Usuario al final de la ruta del sistema. No reemplaza la RUTA de ninguna otra manera.

Si desea configurar una ruta completa específica, es mejor que cree un archivo por lotes como este pequeño:

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

Llámelo "compiler.bat" o lo que sea y haga doble clic para iniciarlo. O enlace a él. O fijarlo, etc.

carveone
fuente
6

Debe hacer cambios en la variable de su sistema
- Haga clic derecho en "Mi computadora"
- Haga clic en "Propiedades"
- Haga clic en "Configuración avanzada del sistema" en el panel lateral
- Haga clic en Variable de entorno - Usted tendrá dos secciones de usuario variable y variable del
sistema: en la sección de variables del sistema, busque la variable 'Ruta', haga clic en editar y agregue
"C:\Python27;"(sin comillas)
guárdela
. Ahora escribepython --version , verá la versión de Python

Y esta hecho

Avinash Agrawal
fuente
5

Para cualquiera que intente lograr esto con Python 3.3+, el instalador de Windows ahora incluye una opción para agregar python.exe a la ruta de búsqueda del sistema. Lea más en los documentos .

Andreas Bergström
fuente
1
Esto es lo que usé, porque estaba teniendo problemas para encontrar la ruta exacta de la instalación. Inicie el instalador, presione 'Modificar' y luego en las Características opcionales, haga clic en siguiente, luego marque la casilla para agregar Python a la ruta del sistema y presione Finalizar.
Rishi
4

Trabajar con variables de entorno de Windows es siempre una experiencia horrible. Recientemente, encontré una herramienta increíble llamada Rapid Environment Editor, que ofrece una GUI increíblemente simple para administrarlos.

Si usa chocolate, puede instalarlo usando choco install rapidee. De lo contrario, eche un vistazo a http://www.rapidee.com/en/download

Al releer esto, suena como un chelín pagado, ¡pero juro que no! Ha sido una de las utilidades más útiles en mi kit de herramientas durante un tiempo y me sorprende que nadie parezca saberlo.

Rob H
fuente
3

Si Python se instaló con otro programa, como ArcGIS 10.1 en mi caso, entonces también debe incluir cualquier carpeta adicional que dirija al python.exe en sus Variables de entorno.

Entonces mis Variables de entorno se ven así:

Variables del sistema> Ruta> agregar ;C:\Python27\ArcGIS10.1

geominded
fuente
2

Esta pregunta es bastante antigua, pero me encontré con un problema similar y mi solución particular no figuraba aquí:

Asegúrese de no tener una carpeta en su RUTA que no exista.

En mi caso, tenía un montón de carpetas predeterminadas (Windows, Powershell, Sql Server, etc.) y luego una costumbre C:\binque normalmente uso, y luego varios otros ajustes como c:\python17, etc. Resulta que el procesador cmd estaba descubriendo quec:\bin no No existe y luego dejó de procesar el resto de la variable.

Además, no sé si hubiera notado esto sin el administrador de PATH . Destacó muy bien el hecho de que ese artículo no era válido.

Chris Phillips
fuente
2

Acabo de instalar Python 3.3 en Windows 7 usando la opción "agregar python a PATH".

En la variable PATH, el instalador agregó automáticamente una barra invertida final : C:\Python33\ por lo que no funcionó en el símbolo del sistema (intenté cerrar / abrir el indicador varias veces)

Eliminé la barra invertida final y luego funcionó:C:\Python33

¡Gracias Ram Narasimhan por tu consejo # 4!

Arnaud
fuente
2

Organicé mi variable de entorno de Python como esta en Win7 de 64 bits usando cmd.

Configuré la variable a PYTHONPATHtravés del menú variable de entorno de Windows y agregué %PYTHONPATH%a la PATHvariable:

...;%PYTHONPATH%

El shell cmd expande la variable correctamente a esto:

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

No olvide reiniciar el shell de cmd después de cambiar la RUTA.

Michel Lawaty
fuente
0

escribe eso en tu Símbolo del sistema:

set Path=%path%

Reemplace% ruta% por la ruta de su carpeta de Python Ejemplo:

set Path=C:/Python27
Skiller Dz
fuente
-2

Si se ha frustrado al configurar la ruta de acceso a Python, simplemente descargue la nueva versión de Python, desinstale la versión anterior de Python y, mientras instala la nueva versión, le preguntará si desea establecer la ruta de acceso e instalarla.

es la mejor manera

Pavan Purohit
fuente