echo $PATH는 Python 스크립트의 경로를 표시하지만 실행할 수는 없습니다.

echo $PATH는 Python 스크립트의 경로를 표시하지만 실행할 수는 없습니다.

저는 쉘 사용이 처음이고 $HOME모든 Python 스크립트를 넣을 수 있는 디렉토리를 만들고 해당 디렉토리에 대한 경로를 설정하여 Mac의 모든 폴더로 이동하여 특정 파일에서 해당 스크립트를 실행할 수 있기를 원했습니다. 해당 스크립트에 대한 입력 역할을 하는 파일과 동일한 디렉터리에 스크립트를 포함할 필요가 없습니다.

나는 이것을 읽고 이것을 내 .zshrc파일에 추가했습니다.

export PATH="$HOME/python_functions/bin:$PATH"

sleep_plotter.py그런 다음 to라는 스크립트를 추가했는데 python_functions/bin, 여기에 향후 모든 스크립트도 넣을 계획입니다.

그러나 해당 스크립트에 대한 입력으로 사용하려는 텍스트 파일이 포함된 폴더로 이동하고 python sleep_plotter.py 113testCtM113.txt마지막 인수가 스크립트에 대한 텍스트 파일 입력인 를 입력하면 다음과 같은 오류 메시지가 나타납니다.

python: can't open file 'sleep_plotter.py': [Errno 2] No such file or directory

하지만 를 사용하여 경로를 호출하면 echo $PATH다음이 표시됩니다.

/Users/myname/python_functions/bin: 

sleep_plotter.py이것으로부터 나는 Python 명령을 실행할 때 Python이 해당 디렉토리를 찾고 있다는 것을 수집했습니다. 따라서 이 파일이 포함되지 않은 다른 폴더에 있을 때에도 실행될 수 있어야 합니다 .

저는 Mac OSX 10.11.2, zsh, Anaconda 2.3.0을 사용하고 있습니다.

답변1

PATH변수는 명령을 실행할 때 검색되는 디렉터리를 정의합니다. 그러나 을 실행할 때 는 python sleep_plotter.py 113testCtM113.txt프로그램 (명령) sleep_plotter.py에 대한 인수입니다 . 쉘은 find 를 python사용 하지만 인수는 사용하지 않습니다.PATHpython

스크립트에 실행 가능 속성을 추가할 수 있습니다.

$ chmod +x /Users/myname/python_functions/bin/sleep_plotter.py

을 추가하다오두막Python 스크립트의 맨 위(첫 번째 줄)로 순서를 지정합니다.

#!/usr/bin/env python

그리고 스크립트를 명령으로 직접 실행하십시오.

$ sleep_plotter.py 113testCtM113.txt

답변2

Python을 확장하여 추가 디렉터리를 검색하려면 두 가지 작업을 수행해야 합니다. 즉, PYTHONPATH 변수를 설정하고 -mPython에서 옵션을 사용하는 것입니다.

In ( 거기에 ~/.zshrc없음을 참고하세요 ):$PATH

export PYTHONPATH="$HOME/python_functions/bin"

그리고 터미널에서는 다음을 사용합니다.

python -m sleep_plotter 113testCtM113.txt

.pyPython 파일에서 확장자를 생략해야 하기 때문에 이전에 입력한 것만큼 많이 입력해야 합니다 .

관련 정보