[python] Python-명령 줄 모듈 실행 중에 PYTHONPATH 추가

나는 실행하고 싶다 :

python somescript.py somecommand

그러나 이것을 실행할 때 PYTHONPATH특정 디렉토리를 포함 해야 합니다. 내가 실행중인 프로젝트에 따라 추가하려는 디렉토리가 변경되기 때문에 내 환경 변수에 추가 할 수 없습니다. PYTHONPATH스크립트를 실행하는 동안 변경하는 방법이 있습니까? 참고 : PYTHONPATH변수도 없기 때문에이 스크립트를 실행하는 동안 변수를 추가하거나 재정의하는 것에 대해 걱정할 필요가 없습니다.



답변

Mac / Linux의 경우;

PYTHONPATH=/foo/bar/baz python somescript.py somecommand

Windows의 경우 래퍼를 설정하십시오 pythonpath.bat.

@ECHO OFF
setlocal
set PYTHONPATH=%1
python %2 %3
endlocal

다음과 pythonpath.bat같은 스크립트 파일을 호출 합니다.

pythonpath.bat /foo/bar/baz somescript.py somecommand


답변

 import sys
 sys.path.append('your certain directory')

기본적으로 sys.path는 파이썬 모듈에 대한 모든 검색 경로가있는 목록입니다. 인터프리터에 의해 초기화됩니다. PYTHONPATH의 내용은 해당 목록의 끝에 자동으로 추가됩니다.


답변

와 같은 POSIX 호환 셸에서 명령을 실행하는 경우 다음과 같이 bash환경 변수를 설정할 수 있습니다.

PYTHONPATH="/path/to" python somescript.py somecommand

모두 한 줄에있는 경우 PYTHONPATH 환경 값은 해당 명령 하나에 만 적용됩니다.

$ echo $PYTHONPATH

$ python -c 'import sys;print("/tmp/pydir" in sys.path)'
False
$ PYTHONPATH=/tmp/pydir python -c 'import sys;print("/tmp/pydir" in sys.path)'
True
$ echo $PYTHONPATH


답변

스크립트 내에서 함수를 실행하기 위해 이것을 시도 할 수 있습니다.

python -c "import sys; sys.path.append('/your/script/path'); import yourscript; yourscript.yourfunction()"


답변

이것은 Windows 용입니다.

예를 들어, 데스크탑에 “mygrapher”라는 폴더가 있습니다. 내부에는 “grapherMain.py”기본 파일에 필요한 Python 파일이 포함 된 “calculation”및 “graphing”폴더가 있습니다. 또한 “grapherMain.py”는 “graphing”에 저장됩니다. 파일을 이동하지 않고 모든 것을 실행하려면 배치 스크립트를 만들 수 있습니다. 이 배치 파일을 “rungraph.bat”라고합시다.

@ECHO OFF
setlocal
set PYTHONPATH=%cd%\grapher;%cd%\calculation
python %cd%\grapher\grapherMain.py
endlocal

이 스크립트는 “mygrapher”에 있습니다. 작업을 실행하려면 명령 프롬프트에 들어가서 다음을 수행합니다.

>cd Desktop\mygrapher (this navigates into the "mygrapher" folder)
>rungraph.bat (this executes the batch file)


답변