pyenv-win path error in WSL
Error message
- windows에서 pyenv-win을 설치하고 나면, WSL에서 pyenv가 정상적으로 실행되지 않습니다
- WSL에서
pyenv
를 실행하면 아래와 같은 에러메세지가 발생합니다or1
-bash: /mnt/c/Users/B660/.pyenv/pyenv-win/bin/pyenv: /bin/sh^M: bad interpreter: No such file or directory
1
2
3/mnt/c/Users/B660/.pyenv/pyenv-win/bin/pyenv: 3: cygpath: not found
/mnt/c/Users/B660/.pyenv/pyenv-win/bin/pyenv: 3: exec: cmd: not found
How to fix
- pyenv가 설치된 위치를 확인합니다
1
2~$ which pyenv
/mnt/c/Users/B660/.pyenv/pyenv-win/bin/pyenv
- 해당폴더에는 각 운영체제별로 사용될 3가지 파일이 있습니다. 이 곳의 파일이름을 변경합니다. Linux(Ubuntu)에서 사용하는 pyenv 실행명령어
/usr/bin/pyenv
가 windows용 명령어를 호출하는 것을 방지합니다
아래 명령어를 통해 파일이름을 변경합니다
1
2# pyenv >> _pyenv 으로 변경함
~$ mv /mnt/c/Users/B660/.pyenv/pyenv-win/bin/pyenv /mnt/c/Users/B660/.pyenv/pyenv-win/bin/_pyenv
ubuntu용 symbolic link를 생성합니다
1
2
3
4
5# example
sudo ln -sf /home/<user name>/.pyenv/bin/pyenv /usr/bin/pyenv
# in my case
sudo ln -sf /home/b660/.pyenv/bin/pyenv /usr/bin/pyenv
- terminal 창에서 wsl를 재실행합니다
- powershll(cmd)와 WSL에서 모두 pyenv가 실행되는 것을 확인합니다