Executar scripts Python no PowerShell diretamente


22

Estou usando o Windows PowerShell. Digamos que eu tenha um script chamado test.pyque imprima algumas coisas. Se eu fizer:

PS D:\>.\test.py

em seguida, abre uma janela CMD que imprime algumas coisas e depois fecha. Na verdade, ele está executando o interpretador Python no CMD. Se eu fizer

PS D:\>python test.py

ele age como eu esperaria, com a saída aparecendo no PowerShell.

Como posso fazer com que o script seja executado no PowerShell quando eu apenas der o nome?


Depois de atualizar sua PATHEXTvariável usando a resposta aceita do zdan abaixo, se você colocar scripts Python em um diretório nomeado por sua PATHvariável de ambiente, não será necessário fornecer um caminho completo (ou relativo) completo para executá-los. Em seguida, os scripts Python se comportam como qualquer outro programa instalado, e você pode juntá-los em pipelines com outros programas / cmdlets ( por exemplo get-clipboard | myscript.py ) e todas essas outras vantagens. :)
TheDudeAbides

Respostas:


24

Edite a variável de ambiente PATHEXT e adicione a extensão .py.

Basta adicionar esta linha ao seu perfil do PowerShell :

$env:PATHEXT += ";.py"

ou você pode simplesmente editar o PATHEXT globalmente nas configurações do sistema (basta procurar no menu Iniciar "ambiente" e escolher a opção "Editar variáveis ​​de ambiente para sua conta").


-1

Você pode ter mais de uma versão do Python instalada e a versão que o IDLE está usando é mais recente. Para ver qual versão do python você possui, digite> python -V em uma linha de comando. Se essa versão parecer apropriada, pode ser necessário o caminho completo para o arquivo como o segundo parâmetro. Por exemplo,> python C: \ myfile.py.

Se você instalou o Python corretamente, sempre há uma chance de que apenas digitar o nome do script o execute com python. Por exemplo> myfile.py

Eu sempre acho que adicionar C: \ Python27 à variável% PATH% e .PY à variável% PATHEXT% facilita a execução de scripts. Nesse caso, apenas> o meu arquivo deve funcionar.

Editar após a atualização:

Digitar apenas> python sem parâmetros abre o python no 'modo interativo', que é diferente do modo de lote ou de script para o qual seu script se destina. Se executado com argumentos, o primeiro argumento é considerado o caminho do arquivo e outros argumentos são passados ​​para o script na lista sys.argv.


Por que você copia e cola sua resposta de algum lugar? Você até esqueceu de copiar a formatação corretamente e não havia "Atualização" lá.
slhck
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.