저는 쉘 사용이 처음이고 $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
에 대한 인수 가 됩니다. python
Shell은 PATH
find 를 사용 python
하지만 해당 인수는 사용하지 않습니다.
스크립트에 실행 가능한 속성을 추가할 수 있습니다.
$ chmod +x /Users/myname/python_functions/bin/sleep_plotter.py
하나 추가셰르본Python 스크립트의 맨 위 순서(첫 번째 줄):
#!/usr/bin/env python
스크립트를 명령으로 직접 실행하십시오.
$ sleep_plotter.py 113testCtM113.txt
답변2
Python을 확장하여 다른 디렉터리를 검색하려면 두 가지 작업을 수행해야 합니다. PYTHONPATH 변수를 설정하고 -m
Python에서 옵션을 사용하는 것입니다.
In (아무것도 ~/.zshrc
없습니다):$PATH
export PYTHONPATH="$HOME/python_functions/bin"
터미널에서 사용:
python -m sleep_plotter 113testCtM113.txt
.py
python 파일 확장자를 생략해야 하므로 앞서 입력한 것과 동일합니다 .