Python 3에서 이라는 기존 명령줄 도구에 대한 명령줄 래퍼를 작성하려고 하는데 spooky
몇 가지 이상한 동작을 이해하는 데 문제가 있습니다. 명령줄에 spooky를 입력하면 spooky에 대한 매뉴얼 페이지가 표시됩니다. /path/to/spooky
명령줄에 spooky 도구( ) 경로를 입력하면 spooky 매뉴얼 페이지도 표시됩니다 .
경로에 spooky를 넣고 필수 매개변수를 입력하면 spooky 프로그램을 성공적으로 실행할 수 있습니다.
$ spooky -a 50 -b .97
하지만 경로에 spooky를 넣지 않고 다음 명령어를 입력하면 실행되지 않습니다.
$ /path/to/spooky -a 50 -b .97
프로그램 경로와 필수 매개변수를 입력했는데 왜 프로그램이 실행되지 않나요?
답변1
귀하의 질문에서 "spooky"는 기존 명령을 의미합니까, 아니면 직접 작성한 Python 3 래퍼를 의미합니까?
그리고 명령줄에 spooky를 입력하면 매뉴얼 페이지가 표시된다고 하셨죠. 그렇죠? 매뉴얼 페이지를 호출하는 것은 "man spooky"가 아니라 "spooky" 자체입니까?
다음에 추가:
당신이 말한 바에 따르면 "spooky" 명령은 호출되는 이름을 포함하여 자체 인수를 확인하고 해당 이름이 전체 경로 이름으로 실행할 때 발생하는 "spooky"가 아닌지 불평하는 것 같습니다.
간단한 해결책은 래퍼에서 "고스트" 모드로 명령을 실행하고 해당 명령이 경로에 있는지 확인하는 것입니다.
답변2
"실행되지 않습니다" 이외의 오류 메시지는 매우 도움이 될 것입니다.
그러나 추가해 보세요.
#!/usb/bin/python
(또는 #!/usb/bin/python3.2 또는 시스템에서 사용하는 Python 인터프리터)를 Python 스크립트의 첫 번째 줄로 지정합니다.
또한 unix chmod 명령을 사용하여 파일을 실행 가능으로 표시하십시오.
chmod u+x /path/to/spooky
답변3
"spooky"가 인수를 제대로 구문 분석하지 못하는 것처럼 들립니다(이유와 방법은 spooky가 작성된 언어에 따라 다릅니다).
간단한 해결책은 를 사용하는 것입니다 os.chdir
.