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에 대한 인수 가 됩니다. pythonShell은 PATHfind 를 사용 python하지만 해당 인수는 사용하지 않습니다.

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

$ 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 파일 확장자를 생략해야 하므로 앞서 입력한 것과 동일합니다 .

관련 정보