저는 쉘 사용이 처음이고 $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
사용 하지만 인수는 사용하지 않습니다.PATH
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 파일에서 확장자를 생략해야 하기 때문에 이전에 입력한 것만큼 많이 입력해야 합니다 .