Python Virtual Environment Setting with pyenv-win on Window
Windows 환경에서 pyenv-win 을 사용하여 Python 가상환경 구성
Windows 환경에서 pyenv-win 을 사용한 파이썬 가상환경을 구성하는 방법에 대한 기록을 남깁니다.
Windows 환경에서 pyenv-win을 사용하여 Python 가상환경을 관리하는 방법에 대한 블로그를 작성하기 위해, 다음 단계를 따라 진행할 수 있습니다. 이 블로그는 설치부터 가상환경 관리까지 모든 과정을 포함합니다.
Windows 환경에서 pyenv-win 을 사용하여 Python 가상환경 구성하기
Python은 다양한 프로젝트에서 사용되며, 각 프로젝트마다 다른 버전의 Python을 요구할 수 있습니다. 이를 효과적으로 관리하기 위해 pyenv-win을 사용하면 여러 버전의 Python을 설치하고 간편하게 전환할 수 있습니다. 이 블로그에서는 Windows 환경에서 pyenv-win을 설치하고 사용하는 방법을 단계별로 안내하겠습니다.
1. pyenv-win 설치
1.1. pyenv-win 다운로드
먼저, pyenv-win을 GitHub에서 다운로드합니다. Git을 설치한 상태여야 합니다.
궁금해서 pyenv 로 설치하지 않은 기존의 python 과의 설정을 보려고 py -0 을 실행해 봤습니다.
골때리는 상황이 전개될 듯하군요.. ㅎㅎ
3. 프로젝트별 로컬 Python 버전 설정
3.1. 프로젝트별 로컬 Python 버전설치
일단 설치가능한 버전을 확인해 봅니다. MAC OS 와 동일한 명령어라서 마음에 듭니다.
pyenv install --list
그리고 3.10.11 version 을 설치합니다.
pyenv install 3.10.11
3.2. 프로젝트 디렉토리로 이동
프로젝트가 있는 디렉토리로 이동합니다.
cd d:\Python_Labs\Projects\Prj_31011
3.3. 로컬 Python 버전 설정
해당 프로젝트에서 사용할 Python 버전을 설정합니다.
pyenv local 3.10.11
3.4. 설정 확인
pyenv local 3.10.11 명령어를 실행시키고 pyenv version 을 실행시켜서 현재 Prj_31011 폴더에서 사용중인 python 버전이 아래와 같이 3.10.11 이 설정된 모습을 볼 수 있습니다.
다른 폴더로 이동했을 때 pyenv version 을 실행시키면 Global version 이 표시되는 걸 볼 수 있죠.
pyenv version
3.5. 설정 해결
하지만 python –version 을 확인해보면 아직도 3.12 버전이 표시되는 걸 볼 수 있습니다.
느낌적인 느낌적으루다가.. 환경변수를 수정해 주면 될 듯합니다.
이 곳에 등록되어 있는 환경변수를 삭제해 줍니다. 그리고 열려있는 command 창을 닫아주고 다시 열어줍니다.
이제야 해결됐네요..
3.12.0 이 설치되어 있는 상황인데도요..
속이 시원합니다. ^^
4. 가상환경 생성 및 관리
4.1. 가상환경 생성
pyenv-win과 virtualenv를 함께 사용하여 가상환경을 생성할 수 있습니다. virtualenv가 설치되어 있는지 확인합니다.
하지만 MAC OS 에 비해 좀 귀찮네요.
pip install virtualenv
특정 Python 버전을 사용하여 가상환경을 생성합니다.
pyenv shell 3.10.11
virtualenv virtualEnv_31011
## pyenv virtualenv 3.10.11 virtualEnv_31011 # MAC OS 와 다른점이에요.
windows 에서는 Pyenv-Virtualenv plugin 을 사용할 수 없습니다.
그래서 위와 같은 방법을 사용할 수 밖에 없어요.
4.2. 가상환경 목록 확인
생성된 가상환경 목록을 확인합니다.
## pyenv virtualenvs #Pyenv-Virtualenv plugin 을 사용할 수 없어서 MAC OS 에서 사용가능합니다.
4.3. 가상환경 활성화
생성한 가상환경을 활성화합니다.
virtualEnv_31011\Scripts\activate # 폴더위치 확인하세요... ^^
## pyenv activate myenv #Pyenv-Virtualenv plugin 을 사용할 수 없어서 MAC OS 에서 사용가능합니다.
4.4. Package 설치
가상환경이 활성화된 상태에서 pip 명령어를 사용하여 필요한 패키지를 설치할 수 있습니다. 예를 들어, requests 패키지를 설치하려면 다음과 같이 입력합니다.
pip install requests
설치하고 나면 \virtualEnv_31011\Lib\site-packages 폴더내에 request 관련 libray 들이 설치되어 있는 것을 확인할 수 있습니다.
4.5. 가상환경 비활성화
작업이 끝난 후 가상환경을 비활성화합니다.
deactivate
4.6. 가상환경 삭제
필요 없는 가상환경을 삭제합니다.
rmdir /s /q virtualEnv_31011
## pyenv uninstall myenv #Pyenv-Virtualenv plugin 을 사용할 수 없어서 MAC OS 에서 사용가능합니다.
결론
이제 pyenv-win을 사용하여 Windows 환경에서 Python 버전과 가상환경을 쉽게 구성하고 관리할 수 있게 되었습니다.
다양한 프로젝트마다 필요한 Python 버전을 독립적으로 설정하고, 가상환경을 활용하여 패키지 충돌 없이 개발을 진행할 수 있습니다. pyenv-win은 Python 개발자의 생산성을 높이는 데 큰 도움이 됩니다.
하지만 Windows 에서는 pyenv 의 기능이 조금은 복잡하고 귀찮은 과정이 있네요..
Windows 에서 virtualenv 를 사용한 가상환경 관리는 MAC OS 와는 다르게 command 명령으로는 설치하지 못하고 Python 공식 site 로 이동하여 설치할 Version 을 Download 하여 직접설치를 해야하는 불편이 있네요. 대신 Custom 설치를 사용해서 Python 들을 찾기 쉬운곳에 한군데에 모아 놓을 수 있는 장점?은 있네요(제가 본래 Windows 사용자라 MAC 에는 약간 어색함이 있어요. ^^;). 저는 3.8 버전을 Download 받았습니다.
작업 디렉터리 설정
가상환경을 생성할 디렉터리로 이동합니다. 예를 들어, `D:\Python_Envs\envs` 디렉터리를 만들고 이동.
mkdir
mkdir D:\\Python_Envs\envs
가상환경 생성
`virtualenv` 모듈을 사용하여 가상환경을 만듭니다. `virtualenv` 뒤에 가상환경의 이름을 지정합니다. 예를 들어, `Py38`라는 이름으로 가상환경을.. Python 3.8 version 으로 만든다.
virtualenv Py38 –python=3.8
cd C:\\Python_Envs\envs
virtualenv Py38 --python=3.8
3. 가상환경 활성화
가상환경을 활성화하여 해당 가상환경에서만 Python과 패키지들이 작동하게 합니다.
다음 명령어를 입력하여 가상환경을 활성화합니다.
PowerShell
Py38\\Scripts\\activate.ps1
Command Prompt
Py38\\Scripts\\activate
활성화되면 명령 프롬프트에 `(Py38)`라는 표시가 붙습니다. 이는 가상환경이 활성화되었음을 의미합니다.
4. 패키지 설치
가상환경이 활성화된 상태에서 `pip` 명령어를 사용하여 필요한 패키지를 설치할 수 있습니다. 예를 들어, `requests` 패키지를 설치하려면 다음과 같이 입력합니다.
pip install requests
5. 가상환경 비활성화
작업을 마친 후 가상환경을 비활성화하려면 다음 명령어를 입력합니다.
deactivate
6. 가상환경 삭제
가상환경을 더 이상 사용하지 않으려면 가상환경 디렉터리를 삭제하면 됩니다. 예를 들어, `Py38` 디렉터리를 삭제합니다.
rmdir Py38
PowerShell
rmdir Py38
Command Prompt
rmdir /s /q Py38
이렇게 하면 가상환경이 삭제됩니다.
마무리
이 단계를 통해 Windows에서 Python 가상환경을 손쉽게 구성하고 사용할 수 있습니다. 가상환경을 사용하면 프로젝트 간의 패키지 충돌을 피하고, 각 프로젝트에 필요한 패키지 버전을 독립적으로 관리할 수 있습니다.
이제 가상환경을 만들어 더욱 깔끔하고 효율적인 Python 개발을 하게 되었습니다!