[python] WSL pipenv install시 왜 Windows 측 python이 호출되는 건

개요


  • wsl에서 저장소에 pipenv를 install하려고하면 왜 오류가 발생합니다. . .
  • 분명히 윈도우 측의 파이썬을 참조하는 패턴
  • 파이썬을 전체 경로로 지정하여 우선 해결 완료

  • 환경


  • Windows10 1909
  • wsl ubuntu 18.0LTS
  • pyenv 1.2.13-35-g22c0202
  • 파이썬 3.8.0
  • pipenv 2018.11.26

  • 현상



    python3.8이 된 후 처음으로 WSL로 프로젝트에 pipenv를 install하려고하면 낯선 오류가. . .
    user@***:~/prj$ pipenv --python 3.8
    # ~~中略~~
    'TypeError: write() takes exactly one argument (3 given)\n']
    

    로그를 제대로 읽었을 때, 아무래도 윈도우 측의 파이썬을 읽는 모양
    OSError: [Errno 8] Exec format error: '/mnt/c/Users/user/AppData/Local/Microsoft/WindowsApps/python.exe'
    

    일단 파이썬을 3.7.4로 되돌려 보았지만 변함없이. . .
    원인은 아무래도 이것 같다 #3488
    이 issue, 상태는 close이지만 근본적으로 해결되지 않은 것 같습니다.
    우선 급격한 대책이 실려 있기 때문에 이번에는 그렇게 할 것입니다.

    대책



    방법은 매우 간단합니다. install 할 python을 버전 지정이 아닌 전체 경로로 직접 지정합니다.
    # 【方法1】バージョン指定していれる場合(例:3.7.4)
    #  パスはフルパスで指定してください(~/.pyenv...は不可)
    pipenv install --python=/home/ユーザー名/.pyenv/versions/3.7.4/bin/python
    
    # 【方法2】globalなpythonを入れる場合(止めておいた方がいい??)
    pipenv install --python=$(which python)
    

    조금 신경이 쓰인 것이 global을 바꿀 때 글로벌 파이썬 파일 /home/ユーザー名/.pyenv/shims/python 것.
    그렇다면 방법 1입니까 (패스 지정 귀찮아... )

    좋은 웹페이지 즐겨찾기