Program Tip

import 문 앞에 pythonpath 설정

programtip 2021. 1. 8. 22:14
반응형

import 문 앞에 pythonpath 설정


내 코드는 다음과 같습니다.

import scriptlib.abc
import scriptlib.xyz

def foo():
  ... some operations

하지만 scriptlib는 다른 디렉토리에 있으므로 환경 변수 "PYTHONPATH"에 해당 디렉토리를 포함해야합니다.

어쨌든 import 문이 다음과 같이 실행되기 전에 먼저 환경 변수 "PYTHONPATH"에 scriptlib 디렉토리를 추가 할 수 있습니까?

import sys
sys.path.append('/mypath/scriptlib')
import scriptlib.abc
import scriptlib.xyz

def foo():
  ... some operations

그렇다면 해당 명령 프롬프트에 대한 값입니까 아니면 전역입니까?

미리 감사드립니다


그러면 Python 프로세스 / 인스턴스 (예 : 실행중인 실행 파일)에 대한 경로가 추가됩니다. 다른 Python 프로세스에 대해서는 경로가 수정되지 않습니다. 실행중인 다른 Python 프로그램에는 경로가 수정되지 않으며 프로그램을 종료하고 다시 실행하면 이전에 추가 한 내용이 경로에 포함되지 않습니다. 당신이하는 일은 일반적으로 정확합니다.

set.py :

import sys
sys.path.append("/tmp/TEST")

loop.py

import sys
import time
while True:
  print sys.path
  time.sleep(1)

운영: python loop.py &

그러면 STDOUT에 연결된 loop.py가 실행되고 백그라운드에서 계속 실행됩니다. 그런 다음 python set.py. 각각에는 서로 다른 환경 변수 세트가 있습니다. 의 환경을 변경하지 않기 loop.py때문에 의 출력 이 변경되지 않는지 관찰하십시오 .set.pyloop.py

가져 오기에 대한 참고 사항

Python 가져 오기는 나머지 언어와 마찬가지로 동적입니다. 진행중인 정적 링크가 없습니다. 가져 오기는 sys.path.append....


여기 에있는 문서에도 언급되어 있습니다 .
로 이동 Python X.X/Lib하고, 이러한 줄을 추가 site.py가,

import sys
sys.path.append("yourpathstring")

이렇게 sys.path하면로드 할 때마다 그 값을 갖게됩니다.

언급 한 바와 같이 여기 에 대해 site.py,

이 모듈은 초기화 중에 자동으로 가져옵니다. 이 모듈을 가져 오면 모듈 검색 경로에 사이트 별 경로가 추가되고 몇 가지 내장 기능이 추가됩니다.

이 문서sys.path 있는 경로를 추가하는 다른 가능한 방법

참조 URL : https://stackoverflow.com/questions/15109548/set-pythonpath-before-import-statements

반응형