Como executar o script python do console sem gravar o caminho completo?

8

Eu tenho alguns scripts python em / usr / share / scripts / que eu uso com freqüência, e eu quero ser capaz de executá-los apenas escrevendo o nome e não o caminho completo, como eu poderia fazer isso?

echo $ PATH me mostra:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/real/RealPlayer

Então, tentei escrever no terminal:

PATH="/usr/share/scripts/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/real/RealPlayer"
export

Nenhum erro é mostrado e o echo $ PATH agora mostra meu novo caminho de scripts, mas quando executo scriptName recebo o comando não encontrado.

O que estou fazendo de errado?

    
por grerdas 12.05.2011 / 14:01

3 respostas

9

Definir permissões executáveis para scripts python por "chmod + x *"
Agora você tem duas opções:

  • Adicione seu diretório de scripts à variável PATH env ou
  • Faça links simbólicos para seus scripts, um por um (ou escreva outro script para fazer o mesmo) no diretório /usr/local/bin .

Exemplo: [mzed@node02 test]$ vim printme.py

Conteúdo do arquivo:

#!/usr/bin/python
print "This is cool!"

-

[mzed@node02 test]$ mv printme.py printme
[mzed@node02 test]$ chmod +x printme
[mzed@node02 ~]$ cd /usr/local/bin/
[mzed@node02 bin]$ sudo ln -s ~/test/printme .
[mzed@node02 bin]$ ls
deskzilla  grails  grails-debug  printme  startGrails
[mzed@node02 bin]$ cd
[mzed@node02 ~]$ printme 
This is cool!
[mzed@node02 ~]$

Espero que isso ajude você.

    
por 13.05.2011 / 15:47
1

Ok, talvez eu seja apenas uma escola mais velha ...
Em / usr / bin, inclua scripts de shell com o cabeçalho #! / Bin / bash e nenhuma extensão .sh. Então, nesses scripts, basta executar o caminho absoluto do python.

Por que acho que é melhor que as outras respostas:
Não requer chmoding seus scripts para torná-los executáveis.
Não requer renomear seus scripts.

    
por 28.02.2012 / 13:29
0

Desculpe por sugerir uma coisa básica. Você tentou "scriptname.py", em vez de apenas "scriptname"?

Além disso, todos os scripts precisam ter permissões de execução (você pode fazer isso emitindo "chmod + x script.py"). A julgar pelo seu comentário acima, já que você os executou como "/ usr / share / scripts /scriptName.py args ", eles devem ter permissões de execução.

    
por 12.05.2011 / 14:18