Windows 10 (비 WSL)에서 pyenv + pipenv 환경 구축

개요



여러 파이썬 버전과 Anaconda 환경을 관리 할 수있는 도구 pyenv 및
프로젝트별로 사용할 python 라이브러리를 관리할 수 있는 python 라이브러리 pipenv🐍
2019년 말 현재, 이 2개의 조합은 베스트인지는 모릅니다만 적당히 사용할 수 있는 조합 라고 생각됩니다 😊

이번에는이 편리한 pyenv와 pipenv를 WSL이 아닌 기본 Windows에 도입하고 싶습니다.

pyenv와 pipenv를 Mac이나 Linux에 도입하는 경우
pipenv측이 pyenv를 자동으로 검출해 제휴를 취해 주기 때문에 도입에 큰 번거로움은 없습니다. 👌
( WSL은 조금 미묘했지만,,, 😒 )
비WSL의 Windows는 공식 pyenv가 대응하고 있지 않는 일도 있어, 약간 수고가 걸립니다 😡

환경


  • Windows10 1909
  • pyenv-win 1.2.4
  • 파이썬 3.8.0
  • pipenv 2018.11.26


  • [순서 1] pyenv(pyenv-win) 도입



    공식 pyenv는 windows를 지원하지 않습니다 😱
    따라서 이번에는 3rd 파티 도구 pyenv-win을 이용합니다.
    이 도구는 본인 pyenv와 달리 아나콘다의 관리가 불가능하지만
    파이썬만이라면 같은 감각으로 관리할 수 있습니다.

    기본적으로 공식적으로 작성된 절차
    따라 도입하겠습니다.

    [순서 1-1] 저장소 트리클론



    먼저 linux pyenv와 마찬가지로 홈 디렉토리 (기본값은 C:\User\ユーザー名\) 아래에 .pyenv 폴더에 복사합니다.
    git clone https://github.com/pyenv-win/pyenv-win.git %USERPROFILE%/.pyenv
    (git 미 도입의 경우는 리포지토리를 다운로드 해 배치합시다)
    ※ 나중에 환경 변수로 이 장소를 지정하므로 반드시 이 장소가 아니어도 좋을지도(미확인)

    [순서 1-2] 환경 변수 설정



    Linux에서는 이것으로 끝이지만 Windows에서는 추가로 환경 변수 설정이 필요합니다.
    먼저 복제된 폴더 경로를 사용자 환경 변수 PYENV로 설정합니다.


    그런 다음 PAHshimsbin 폴더를 추가합니다.
    여기서 주의하는 것이, 이러한 설정을 ~Microsoft\WindowsApps 보다 상위로 설정하는 것.

    만약 하위로 설정했을 경우는 Windows측이 python이 없다고 간주해 Microsoft store의 python을 진행해 온다고 하는 방해인 걱정을 해 옵니다🤪

    잘 설정하면 명령 프롬프트와 powershell에서 pyenv 명령을 칠 수 있습니다.
    pyenv의 초기 설정은 여기 당

    [순서 2] pipenv 도입



    계속해서 pipenv의 도입입니다만, 이번 공식적인 pyenv가 아니라 3rd 파티의 툴을 사용해 버리고 있기 때문에,pip install pipenv에서 pipenv를 설치해도 pipenv 명령이 인식되지 않습니다 😱
    pyenv의 명령 두는 shims 폴더를 보면 Linux에서 생성 된 pipenv에 링크하는 스크립트가
    Windows 측에서는 안의 정치되어 있지 않습니다 😨

    하지만 리눅스 측의 Shims 폴더의 pip 스크립트 파일과 pipenv 파일을 비교해 보면 내용이 완전히 일치합니다.
    파일명의 커멘드를 실환경에서 찾아 가서 실행할 뿐이므로 내용이 일치하고 있는 것입니다.


    그래서 대책은 pipenv와 내용이 같은 링크 파일을 확인한 다음,
    Windows 환경 측에서 같은 파일을 복사하여 pipenv로 이름을 바꾸기만 하면 됩니다.pip → pipenvpip.bat → pipenv.bat

    올바르게 설정되면 명령 프롬프트와 powershell에서 pipenv를 인식 할 수 있습니다 😁



    요약



    WSL이 아닌 Windows 환경에 pyenv(3rd 파티제의 windows판)와 pipenv를 도입했습니다

    좋은 웹페이지 즐겨찾기