기본적으로 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 환경을 이용할 수 있다.