본문 바로가기

Python

Python으로 시스템 변수 추가하는 방법

320x100
320x100

 

 

 

 Code

1
2
import sys
sys.path.append('C:/Users/Ballentain/Desktop/test')
cs

 

 

 

 설명

 시스템 변수에 경로를 추가하면 무엇이 좋냐고 물어본다면, 파일을 import할 때 경로 신경 안 쓰고 바로 import해줄 수 있어서 좋다고 답할 수 있을 것 같다. 말로는 이해가 힘들다. 예제를 통해 살펴보자. test 폴더에는 train.py 와 obj 폴더가 들어있고, obj 폴더에는 trainer.py가 들어있다.

 

 

 

 [  train.py  ]는 obj의 trainer.py를 import하게끔만 설정해 놨고,

 

 

 [  trainer.py  ]는 실행 Hi 를 출력하도록 설정해놨다.

 

 

 위와 같은 구조 아래에서 train.py를 실행하면 trainer.py가 import 되어 에러없이 'Hi'를 출력하게 된다.

 

 

근데 만약에 train.py를 obj와 같은 경로에 위치시킨 후 실행시키면 어떻게 될까?

 

 No module named 'obj' 란 Error가 발생하게 된다. train.py가 실행된 경로를 기준으로 obj라는 폴더가 있어야 하는데 없기 때문에 발생하는 Error다. 해결 방법으로는, train.py를 원래 위치인 test 폴더 밑으로 옮기는 방법도 있으나 더 세련된(?) 방법은 시스템 변수를 임시적으로 추가해서 Error를 잡아주는 것이다. 윈도우 환경에서 시스템 변수에 새로운 경로를 추가하려면 파이썬의 sys 모듈을 사용해주면 된다.

 

 obj 폴더가 있는 test 폴더의 경로를 시스템 변수로 잡아주면

어느 경로에서든 바로 import해서 obj의 trainer.py를 사용해 줄 수 있게 된다. 

※ 이때 추가되는 경로는 일회성이라서 실행이 끝나면 다시 사라진다.

 

 

 

 이렇게 시스템 변수를 추가하는 코드를 추가한 후 obj 폴더에 있는 train.py를 실행하면 Error없이 잘 실행되는 것을 확인할 수 있다.