Programming/Python

Python 환경이 다른 가상환경 여러 개 만들기 (윈도우)

며용 2020. 4. 19. 23:01

사용한 툴: Git Bash, 윈도우 Ubuntu terminal

PyCharm에서 작업하다가 라이브러리 버전을 다르게 해서 작업하려고 가상환경을 두 개 만들었다.

Python 코드를 리눅스 기반으로 작업을 해서 실행은 우분투 터미널로 하지만
노트북 자체는 윈도우여서 가상환경은 Git Bash에서 만들었다.

 

venv로 가상환경을 만들거다!

venv는python3에서 기본으로 제공하는 가상환경(virtualenv)라이브러리
(Python3부터는 pip 포함.이전이면 easy_install pip로 pip다운받기)
Python2에서는virtualenv 라이브러리를 다운받아서 사용해야함

 

python -m venv {NAME}

$ python -m venv FOLDER_NAME
virtual environment를 만든다

 

# Windows
{NAME}\Scripts\activate

# Linux
source {NAME}/bin/activate

가상환경 활성화 시키기

deactivate

이건 비활성화 하기

 

윈도우 기반으로 만드려고 만드는건 Git Bash에서 만들었는데
Python Fabric 명령은 Ubuntu terminal로 실행할거기때문에 실행부터는 윈도우에서 제공해주는 Ubuntu Terminal에서 했다.

가상환경으로 라이브러리 충돌하지 않게 분리해서 사용하려고 한 거기 떄문에 venv-back이라는 가상환경을 하나 더 만들어줬다.
(가상환경이 없으면 라이브러리를 설치 했을 때 전역으로 설치됨.)

 


활성화하면 가장 앞에 가상환경에 들어와있다고 표시가 됨.가상환경에서 라이브러리를 설치하면 그 환경에만 영향이 있음!
(나중에 배포할 때 똑같은 환경을 배포할 수 있고 받는 사람은 같은 버전의 파이썬이 있어야한다.)

 

 

Scripts폴더 밑에는easy_install.exe, pip.exe등이 있음.

여기의 실행파일로 실행이 되야 분리된 가상환경이 되는데

 

which로 어떤 pip가 잡혀있는지 보면 가상환경이 아닌 default로 PATH가 잡혀있다
이 경로로 라이브러리를 설치하게 되면 전역으로 설치가 된다..!

 

그래서 PATH를 변경해주기!
- 파이썬 설치 위치랑 Scripts 폴더를 PATH에 등록하기(윈도우: Scripts,리눅스: bin)
PATH는 순서대로 보고 가장 먼저의 것을 반영하기 때문에 가상환경 PATH를 제일 앞에 더해주면 된다.

vi venv/Scripts/activate

vi로 activate를 열어준다

 

VIRTUAL_ENV 부분이 현재 경로가 맞는지 체크한다.
우분투 terminal이어서 경로 수정을 / 로 해줬다 (윈도우는 \! 그래서 둘 다 넣어줘야 어디서든 인식이 된다)
(i : 입력하기 -> ~수정 후~ -> esc : 입력창 나오기 -> :wq : 저장 후 종료 )

 

수정 후에는 비활성화를 한 후 다시 활성화를 해줘야 적용이 된다.

 

 

export | grep PATH

로 제일 앞에 가상환경 PATH가 추가됐는지 확인

 

which pip3는 default로 가는데 which pip3.exe는 가상환경으로 잘 잡혀준다.
(가상환경에 다운로드가 pip3.exe로 되어있어서 그렇다)

 

./venv/Scripts/pip3.7.exe install plotly==2.0.12
pip3.exe install plotly==4.6.0

그래서 라이브러리 다운할 때도 pip3.exe로 해줘야 가상환경으로 제대로 잡힌다.

 


해서 각각 다른 버전의 라이브러리를 가지고 있는 가상환경 두 개가 생겼다!