전체 경로를 작성하지 않고 콘솔에서 Python 스크립트를 실행하는 방법은 무엇입니까?


8

/ usr / share / scripts /에 자주 사용하는 몇 가지 파이썬 스크립트가 있으며 전체 경로가 아닌 이름 만 작성하여 실행할 수 있기를 원합니다. 어떻게 할 수 있습니까?

echo $ PATH는 다음을 보여줍니다.

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

그래서 터미널에서 글을 쓰려고했습니다.

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

오류가 표시되지 않고 echo $ PATH에 새 스크립트 경로가 표시되지만 scriptName을 실행할 때 명령을 찾을 수 없습니다.

내가 무엇을 잘못하고 있지?


바로 전에 어떻게 했습니까?
Ignacio Vazquez-Abrams

나는 전에 그것을하지 않았다.
grerdas

당신은 그들을 실행하지 않았다? 나는 ... 당신이 자주 사용했다 생각
이그나시오 바스케스 - 아브람에게

@Ignacio 바스케스 - 에이 브람스 : 아 나는 나는 "/usr/share/scripts/scriptName.py의 인수"처럼 그들을 실행, 죄송합니다 질문을 이해하지 못했다
grerdas

답변:


9

"chmod + x *"로 파이썬 스크립트의 실행 권한 설정하기
이제 두 가지 옵션이 있습니다.

  • 스크립트 디렉토리를 PATH env 변수에 추가하십시오. 또는
  • 디렉토리에서 스크립트에 대한 심볼릭 링크를 하나씩 만들거나 다른 스크립트를 작성하십시오 /usr/local/bin.

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

파일 내용 :

#!/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 ~]$

이것이 도움이되기를 바랍니다.


Windows 용 버전을 만들 수 있습니까? (나는 이것이 리눅스 질문이라는 것을 안다)
Iulian Onofrei

1

좋아, 어쩌면 나는 좀 더 오래된 학교 일 것이다 ...
/ usr / bin에서 #! / bin / bash 헤더와 .sh 확장자가없는 쉘 스크립트를 추가하라. 그런 다음 해당 스크립트에서 python absolutepath를 실행하십시오.

필자가 다른 답변보다 낫다고 생각하는 이유 :
스크립트를 실행 가능하게하기 위해 스크립트를 chmoding 할 필요가 없습니다.
스크립트 이름을 바꿀 필요가 없습니다.


인수를 잊지 마십시오.
juanitogan

0

기본 사항을 제안하여 죄송합니다. "scriptname"대신 "scriptname.py"를 사용해 보셨습니까?

또한 모든 스크립트에는 실행 권한이 있어야합니다 ( "chmod + x script.py"를 실행하여이를 수행 할 수 있음). "/ usr / share / scripts / scriptName과 같이 스크립트를 실행 했으므로 위의 주석에서 판단하십시오. py args ", 실행 권한이 있어야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.