디렉토리에 대한 cd-ing 없이 명령줄에서 Python 스크립트를 사용하려면 어떻게 해야 합니까?PYONPATH인가요?
파이썬패스를 어떻게 활용할 수 있습니까?경로에서 스크립트를 실행하려고 하면 파일을 찾을 수 없습니다.스크립트가 저장된 디렉토리에 CD를 넣으면 스크립트가 실행됩니다.그렇다면 PYONPATH가 무슨 소용이 있을까요?
$ echo $PYTHONPATH
:/home/randy/lib/python
$ tree -L 1 '/home/randy/lib/python'
/home/randy/lib/python
├── gbmx_html.py
├── gbmx.py
├── __init__.py
├── __pycache__
├── scripts
└── yesno.py
$ python gbmx.py -h
python: can't open file 'gbmx.py': [Errno 2] No such file or directory
$ cd '/home/randy/lib/python'
파일 디렉토리에 cd한 후 실행됩니다.
$ python gbmx.py -h
usage: gbmx.py [-h] [-b]
PYONPATH를 사용할 수 없는 이유는 무엇입니까?
당신이 좀 혼란스러워 하는 것 같아요.PYTHONPATH는 Python 모듈을 가져오는 검색 경로를 설정합니다. 사용자가 시도하는 것처럼 실행하는 것이 아닙니다.
PYONPATH 모듈 파일의 기본 검색 경로를 확장합니다.이 형식은 셸의 PATH와 동일합니다. OS.pathsep(예: Unix의 콜론 또는 Windows의 세미콜론)로 구분된 하나 이상의 디렉터리 경로 이름입니다.존재하지 않는 디렉토리는 자동으로 무시됩니다.
일반 디렉터리 외에도 개별 PYONPATH 항목은 순수 Python 모듈(소스 또는 컴파일된 형식)이 포함된 zip 파일을 참조할 수 있습니다.zip 파일에서 확장 모듈을 가져올 수 없습니다.
기본 검색 경로는 설치에 따라 다르지만 일반적으로 prefix/lib/python 버전으로 시작합니다(위의 PYONHOME 참조).항상 PYONPATH에 추가됩니다.
위의 인터페이스 옵션에 설명된 대로 PYONPATH 앞의 검색 경로에 추가 디렉터리가 삽입됩니다.검색 경로는 Python 프로그램 내에서 sys.path 변수로 조작할 수 있습니다.
http://docs.python.org/2/using/cmdline.html#envvar-PYTHONPATH
당신이 찾고 있는 것은 PATH입니다.
export PATH=$PATH:/home/randy/lib/python
그러나 파이썬 스크립트를 프로그램으로 실행하려면 첫 번째 줄에 파이썬에 대한 셰방을 설정해야 합니다.다음과 같은 방법이 사용될 것입니다.
#!/usr/bin/env python
실행 권한을 부여합니다.
chmod +x /home/randy/lib/python/gbmx.py
그러면 당신은 간단히 도망칠 수 있을 것입니다.gmbx.py어디서나
당신은 PATH와 PATH를 혼동하고 있습니다.이 작업을 수행해야 합니다.
export PATH=$PATH:/home/randy/lib/python
PYTHONPATH는 Python 인터프리터에서 로드할 모듈을 결정하는 데 사용됩니다.
PATH는 셸에서 실행할 실행 파일을 결정하는 데 사용됩니다.
PYTHONPATH에만 영향을 미칩니다.import인수로 지정된 파이썬 파일에 대한 최상위 파이썬 인터프리터의 조회가 아닌 문.
드가 PYTHONPATH설정하는 것은 좋은 생각이 아닙니다. 환경 변수에 의존하는 것과 마찬가지로 서로 다른 컴퓨터 간에 일관성 있게 복제하는 것이 까다로워집니다.Python이 이미 알고 있는 시스템 종속 경로에 설치할 수 있는 Python 'packages'('pip' 또는 distutils 사용)를 사용하는 것이 더 좋습니다.
https://the-hitchhikers-guide-to-packaging.readthedocs.org/en/latest/ - 'The Hitchhiker's Guide to Packaging'과 PYTHONPATH 및 패키지에 대해 더 낮은 수준으로 설명하는 http://docs.python.org/3/tutorial/modules.html 을 읽어 보십시오.
예와 같이 PYTHONPATH를 설정하면 다음 작업을 수행할 수 있습니다.
python -m gmbx
-m옵션을 선택하면 Python은 PYTHONPATH에 추가한 내용을 포함하여 Python이 일반적으로 모듈을 검색하는 경로에서 모듈을 검색합니다.당신이 통역사를 실행할 때.python gmbx.py특정 파일을 찾고 PYONPATH가 적용되지 않습니다.
당신은 PATH와 PYPATH를 혼동하고 있는 것 같습니다.'스크립트'를 실행하려면 부모 디렉토리를 PATH 변수에 추가하기만 하면 됩니다.실행하여 테스트할 수 있습니다.
which myscript.py
또한, 만약myscripy.py사용자 지정 모듈에 따라 상위 디렉터리도 PYONPATH 변수에 추가해야 합니다.불행하게도, 파이썬의 디자이너들이 분명히 약물을 복용하고 있었기 때문에, 다음과 같이 repl에서 당신의 가져오기를 테스트하는 것은 당신의 PYTHONPATH가 스크립트에서 사용하기 위해 적절하게 설정되었음을 보장하지 않습니다.파이썬 프로그래밍의 이 부분은 마법 같아서 스택 오버플로 시 적절하게 답변할 수 없습니다.
$python
Python 2.7.8 blahblahblah
...
>from mymodule.submodule import ClassName
>test = ClassName()
>^D
$myscript_that_needs_mymodule.submodule.py
Traceback (most recent call last):
File "myscript_that_needs_mymodule.submodule.py", line 5, in <module>
from mymodule.submodule import ClassName
File "/path/to/myscript_that_needs_mymodule.submodule.py", line 5, in <module>
from mymodule.submodule import ClassName
ImportError: No module named submodule
언급URL : https://stackoverflow.com/questions/19917492/how-can-i-use-a-python-script-in-the-command-line-without-cd-ing-to-its-director
'programing' 카테고리의 다른 글
| django 테스트를 실행할 때 sql 쿼리를 보는 방법은 무엇입니까? (0) | 2023.06.13 |
|---|---|
| AuthStateChanged에서 Firebase 수신 중지 (0) | 2023.06.13 |
| 파이썬에서 줄임표 슬라이싱 구문을 어떻게 사용합니까? (0) | 2023.06.13 |
| null 값을 텍스트로 바꾸는 방법은 무엇입니까? (0) | 2023.06.13 |
| 파이어베이스 충돌 분석 - java.lang.잘못된 상태 예외:충돌 분석 빌드 ID가 없습니다. (0) | 2023.06.13 |