Python

activate 없이 virtualenv 환경 이용하기

비번변경 2021. 6. 26. 22:48

기본적으로 virtualenv 내 python을 사용해 python 코드를 실행시키기 위해서는 아래의 명령어로 virtualenv를 activate 해야 한다.

source <ENV_PATH>/bin/activate

 그렇다면 virtualenv 환경은 activate를 해야만 사용할 수 있을까?

 결론만 말하자면, virtualenv 내 python의 실행 경로를 직접 지정하면 activate 하지 않아도 virtualenv로 구성한 python과 모듈을 동작시킬 수 있다.

 

예시

 예시로 패키지 충돌을 피하기 위해서 test_env라는 이름의 virtualenv 환경에 python-gitlab이라는 모듈을 설치했다고 가정해보자.

호스트와 가상 환경 파이썬 모듈 비교

 그리고 각 환경에서 python-gitlab 모듈을 import 해보았다.

호스트에서 모듈 임포트
가상환경에서 모듈 임포트

 python-gitlab 모듈을 설치하지 않은 OS 환경에서는 에러가 났지만, virtualenv 환경에서는 정상적으로 import 된 것을 볼 수 있다. 이제 virtualenv 환경을 비활성화한 후, virtualenv 환경의 python을 실행시켜 python-gitlab 모듈을 import 해보았다.

 

가상환경 직접 실행

 에러 없이 정상적으로 동작한 것을 확인할 수 있다.

 

 즉, virtualenv 환경을 활성화시켜 python을 실행한 것과 virtualenv 환경을 활성화시키지 않고 virtualenv의 python 실행 경로를 지정하여 python을 실행시킨 것은 동일하다. 이 점을 이용하면 쉘 스크립트 상에서도 virtualenv 환경을 이용할 수 있다.