Adicionando o caminho Python no Windows 7

138

Eu tenho tentado adicionar o caminho Python à linha de comando no Windows 7, mas não importa o método que eu tente, nada parece funcionar. Eu usei o setcomando, tentei adicioná-lo através do prompt Editar variáveis ​​de ambiente etc.

Além disso, se eu executar o comando set na linha de comando, ele listará

python = c:\python27

No entanto, ele ainda não reconhece o comando Python.

Ler a documentação e várias outras fontes não pareceu ajudar.

Editar: Apenas para esclarecer mais, anexei o caminho do executável Python para PATH no prompt do ambiente de edição. Não parece funcionar.

rogerklutz
fonte
O executável está dentro desse diretório? Não existe um diretório bin dentro disso?
Anirudh Ramanathan
@ anirudh4444 Não, sua nesse diretório ...
rogerklutz
Você pode obter tanto GUIe Command Lineopção de aqui stackoverflow.com/a/38141751/5409601
Rafayet Ullah
Embora não seja válido para você, com o Windows Installer do Python 3.6 (e versões potencialmente anteriores), você pode optar por "Personalizar" sua instalação e há uma caixa de seleção para adicionar o Python ao seu caminho.
paulhauner

Respostas:

266
  1. Mantenha Winpressionado Pause.
  2. Clique em Configurações avançadas do sistema.
  3. Clique em Variáveis ​​de ambiente.
  4. Anexar ;C:\python27à Pathvariável.
  5. Reinicie o prompt de comando.
melhosseiny
fonte
2
Sim, eu já fiz isso. Desculpe se eu não fiz que mais clara na pergunta original
rogerklutz
11
Verifique se você não possui espaços em suas variáveis ​​python e path.
Yossi
4
@rogerklutz: Apenas certifique-se de adicionar "; C: \ python27" à variável PATH que já existe, e não criar uma nova variável com "C: \ python27" como valor.
Wassimans
5
Em muitos casos, você também precisa fazer logoff e logon após definir a variável Path.
dk123
Sofrendo um problema semelhante, já havia feito tudo, menos a etapa 5 ... Obrigado por incluir isso.
precisa saber é o seguinte
112

Ao definir variáveis ​​ambientais no Windows, eu errei em muitas e muitas ocasiões. Eu pensei que deveria compartilhar alguns dos meus erros do passado aqui, esperando que isso possa ajudar alguém. (Eles se aplicam a todas as variáveis ​​ambientais, não apenas ao definir o caminho do Python)

Cuidado com estes possíveis erros:

  1. Mate e reabra a janela do seu shell: Depois de fazer uma alteração nas Variáveis ​​AMBIENTAIS, você deve reiniciar a janela em que está testando.
  2. SEM ESPAÇOS ao definir as variáveis. Certifique-se de adicionar o ;C:\Python27SEM espaços. (É comum tentar C:\SomeOther; C:\Python27Esse espaço (␣) após o ponto e vírgula não está bom.)
  3. Use uma barra para trás ao soletrar seu caminho completo. Você verá barras quando tentar, echo $PATHmas apenas barras invertidas funcionaram para mim.
  4. NÃO ADICIONE uma barra invertida final . Somente C:\Python27NÃOC:\Python27\

Espero que isso ajude alguém.

Ram Narasimhan
fonte
1
A razão pela qual escolhi esta resposta é que na maioria das vezes o PATH fica quebrado por causa de uma dessas quatro coisas. A parte mais fácil é fazê-lo corretamente, a parte mais difícil é perceber quando você fez isso incorretamente!
grettke
1
O comando echo $pathsó é válido se você estiver executando um shell bash no Windows (por exemplo, MinGW). O comando do prompt de comando do Windows éecho %path%
Bruce Peterson
2
Não achei a reação final problemática. Estou esquecendo de algo?
mystrdat
51

Abra o cmd .exe com privilégios de administrador (clique com o botão direito do mouse no aplicativo). Então digite:

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

Lembre-se de terminar com um ponto-e-vírgula e não inclua uma barra final.

kenichi
fonte
3
+ 1- Isso permite adicionar ao caminho sem a necessidade de privilégios de administrador. No entanto, não tenho certeza de que o% path% é necessário. No meu sistema Windows 7, as novas janelas cmd agora têm duas cópias dos caminhos anteriores.
Paul Lynch
32

Eu tive um problema com isso por muito tempo. Adicionei-o ao meu caminho de todas as formas que pude pensar, mas eis o que finalmente funcionou para mim:

  1. Clique com o botão direito do mouse em "Meu computador"
  2. Clique em "Propriedades"
  3. Clique em "Configurações avançadas do sistema" no painel lateral
  4. Clique em "Variáveis ​​de ambiente"
  5. Clique no "Novo" abaixo das variáveis ​​do sistema
  6. no nome, digitepythonexe (ou o que você quiser)
  7. no valor digite o caminho para o seu python (exemplo: C:\Python32\)
  8. Agora edite a variável Path (na parte do sistema) e adicione %pythonexe%;ao final o que já está lá

IDK por que isso funciona, mas funcionou para mim.

tente digitar "python" na sua linha de comando e deve funcionar!


Editar:

Ultimamente tenho usado este programa que parece funcionar muito bem. Também há um que parece muito bom, embora eu nunca tenha experimentado.

JustGage
fonte
14

Você pode definir o caminho na janela atual do cmd usando o PATH =comando Isso o adicionará apenas à instância atual do cmd. se você quiser adicioná-lo permanentemente, adicione-o às variáveis ​​do sistema. (Computador> Configurações avançadas do sistema> Variáveis ​​de ambiente)

Você iria para a instância do cmd e inseria PATH=C:/Python27/;%PATH%.

Anirudh Ramanathan
fonte
Esta solução funcionou para mim no Win7 Pro. Testado com echo %PATH~%.
Igor
11

Certifique-se de não adicionar um espaço antes do novo diretório.

Bom: velho; velho; velho; novo

Ruim: velho; velho; velho; Novo

Mike Pateras
fonte
9

O Python vem com um pequeno utilitário que faz exatamente isso . Na linha de comando, execute:

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

Feche a janela de comando (com exitou o botão Fechar) e abra-a novamente.

Udi
fonte
1
Quanto a mim, ele altera o registro, mas nenhum aplicativo será afetado até que você confirme manualmente as alterações via caixa de diálogo da GUI std. Reiniciar um aplicativo não ajuda. Parece que também é necessário um tipo de transmissão.
Pavel Vlasov
Isso funcionou para mim no 8.1 e parece mais fácil do que outras abordagens. Uma janela / caixa se abre e pergunta o que você deseja executar. Selecione Outro e, em seguida, volte para c: \ python27 e escolha o executável do python (.exe). O efeito parece ser permanente, então você precisa fazer isso apenas uma vez. Você precisará executar o win_add2path.py para todos os usuários, mas não receberá a caixa após a primeira vez.
user2099484
8

O programa a seguir adicionará o caminho do executável python e o subdiretório Scripts (que é onde, por exemplo, o pip e o easy_install estão instalados) ao seu ambiente. Ele encontra o caminho para o executável python da chave do Registro que liga a extensão .py. Ele removerá antigos caminhos python no seu ambiente. Funciona com XP (e provavelmente Vista) também. Ele usa apenas módulos que acompanham o instalador básico do 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
fonte
Isso arruinou meu CAMINHO. Aqui está uma versão fixa (eu também removi remove_old, que é impossível * para acertar): gist.github.com/anonymous/fb5d176ab91dccbd0ebd * yes
Aur Saraf
6

Sei que este post é antigo, mas gostaria de acrescentar que as soluções assumem privilégios de administrador. Se você não possui, pode:

Vá para o painel de controle, digite caminho (agora é o Windows 7 e, portanto, está na caixa Pesquisar) e clique em "Editar variáveis ​​de ambiente para sua conta". Agora você verá a caixa de diálogo Variável de ambiente com "Variáveis ​​de usuário" na parte superior e "Variáveis ​​de sistema" abaixo.

Como usuário, você pode clicar no botão superior "Novo" e adicionar:

Nome da variável: PATH
Valor da variável: C: \ Python27

(sem espaços em qualquer lugar) e clique em OK. Depois que o prompt de comando é reiniciado, qualquer PATH nas variáveis ​​Usuário é anexado ao final do Caminho do Sistema. Não substitui o PATH de nenhuma outra maneira.

Se você deseja configurar um caminho completo específico, é melhor criar um arquivo em lotes como este:

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

Chame de "compiler.bat" ou qualquer outra coisa e clique duas vezes para iniciá-lo. Ou link para ele. Ou fixá-lo etc ...

carveone
fonte
6

Você precisa fazer alterações na variável do sistema
- Clique com o botão direito do mouse em "Meu computador"
- Clique em "Propriedades"
- Clique em "Configurações avançadas do sistema" no painel lateral
- Clique em Variável de ambiente - Você terá duas seções do usuário variável e variável de sistema
- Na seção de variável de sistema, procure a variável 'Path', clique em editar e adicione
"C:\Python27;"(sem aspas) salve-a
- Agora abra o tipo de linha de comando 'path' hit enter, você verá que a variável de caminho foi modificada
- Agora digite que python --versionvocê verá a versão python

E está feito

Avinash Agrawal
fonte
5

Para quem tenta fazer isso com o Python 3.3 ou superior, o instalador do Windows agora inclui uma opção para adicionar python.exe ao caminho de pesquisa do sistema. Leia mais nos documentos .

Andreas Bergström
fonte
1
Isso é o que eu usei, porque estava tendo problemas para encontrar o caminho exato da instalação. Inicie o instalador, pressione 'Modificar' e, em Recursos Opcionais, clique em Avançar, marque a caixa para adicionar Python ao caminho do sistema e pressione Concluir.
Rishi 27/07
4

Trabalhar com variáveis ​​de ambiente do Windows é sempre uma experiência horrível. Recentemente, encontrei uma ferramenta incrível chamada Rapid Environment Editor, que fornece uma GUI incrivelmente simples para gerenciá-los.

Se você usar chocolate, poderá instalá-lo usando choco install rapidee. Caso contrário, dê uma olhada http://www.rapidee.com/en/download

Relendo isso, parece um dinheiro pago, mas juro que não! É apenas um dos utilitários mais úteis do meu kit de ferramentas há um tempo e estou surpreso que ninguém pareça saber disso.

Rob H
fonte
3

Se o Python foi instalado com outro programa, como o ArcGIS 10.1 no meu caso, você também deve incluir quaisquer pastas extras que acompanhem o python.exe nas variáveis ​​de ambiente.

Então, minhas variáveis ​​de ambiente ficam assim:

Variáveis ​​do sistema> Caminho> adicionar ;C:\Python27\ArcGIS10.1

geominded
fonte
2

Esta pergunta é bastante antiga, mas acabei de encontrar um problema semelhante e minha solução específica não foi listada aqui:

Verifique se você não possui uma pasta no seu PATH que não exista.

No meu caso, eu tinha um monte de pastas padrão (Windows, Powershell, Sql Server, etc) e, em seguida, um costume C:\binque normalmente uso, além de vários outros ajustes c:\python17, etc. Acontece que o processador cmd estava descobrindo que c:\binnão existe e parou de processar o restante da variável.

Além disso, não sei se teria notado isso sem o gerente do PATH . Destacou bem o fato de que esse item era inválido.

Chris Phillips
fonte
2

Acabei de instalar o Python 3.3 no Windows 7 usando a opção "adicionar python ao PATH".

Na variável PATH, o instalador adicionou automaticamente uma barra invertida final : C:\Python33\ portanto , não funcionou no prompt de comando (tentei fechar / abrir o prompt várias vezes)

Eu removi a barra invertida final e funcionou:C:\Python33

Obrigado Ram Narasimhan pela dica nº 4!

Arnaud
fonte
2

Organizei minha variável de ambiente python como esta no Win7 de 64 bits usando o cmd.

Defino a variável PYTHONPATHatravés do menu de variáveis ​​de ambiente do windows e adicionei %PYTHONPATH%à PATHvariável:

...;%PYTHONPATH%

O cmd shell expande a variável corretamente para isso:

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

Não se esqueça de reiniciar o cmd shell após alterar o PATH.

Michel Lawaty
fonte
0

escreva isso no prompt de comando:

set Path=%path%

Substitua% path% pelo caminho do seu exemplo de pasta Python:

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

Se você ficou frustrado ao definir o caminho para o python, basta baixar a nova versão do python, desinstalar a versão mais antiga do python e ao instalar a nova versão, ele perguntará se deve definir a marca do caminho e instalar

é a melhor maneira

Pavan Purohit
fonte