wsl interop

  • rm -rf같은 리눅스 명령어를 윈도우에서 작성하고 싶다
  • 명령어를 똑같이 쓸 수 있는 방법이 있다
  • 파워셸 코어가 필요하다

전제조건

  • WSL 활성화

설치

terminal
1
Install-Module WslInterop
  • 파워셸 코어를 실행하고, Install-Module WslInterop으로 설치한다

사용하기

terminal
1
Import-WslCommand

새 터미널을 킬 때마다 다시 설정해줘야 한다?

  • Import-WslCommand 명령으로 wsl로 실행할 명령을 지정할 수 있다
  • 그런데 새로운 터미널을 켤 때마다 매번 명령을 쳐줄 수 없다
  • 파워셸 프로필을 설정해서 자동으로 임포트 명령이 실행되도록 한다
1
2
3
4
5
6
7
# 프로필 생성
if (!(Test-Path -Path $PROFILE)) {
New-Item -ItemType File -Path $PROFILE -Force
}

# profile파일 열고 wsl interop 설정
notepad $PROFILE
1
Import-WslCommand "apt", "awk", "emacs", "grep", "head", "less", "ls", "man", "sed", "seq", "ssh", "sudo", "tail", "vim", "rm", "touch"
  • 인터럽트 할 명령어를 위와 같이 나열한다
  • 이제 파워셸에서 나열한 셸 명령어를 사용할 수 있다

참고

깃허브에 있는 파이썬 프로젝트 돌려보기

파이썬 초보가 처음 깃허브에 있는 파이썬 프로젝트들을 돌려보면서 막혔던 부분과 알게 된 부분을 정리한 글

내 파이썬 지식

  • 인공지능 관련 프로젝트들이 대부분 파이썬으로 작성되어 있어서
  • 관련 프로젝트를 돌려보기 위해서는 파이썬 지식을 필요로 했다
  • 1 ~ 2년 전에 학교 수업으로 데이터분석처리라는 과목을 들으면서 파이썬을 사용해봤는데,
  • os는 윈도우, 도구는 주피터 노트북으로 테이블 데이터 전처리, 데이터 시각화와 분석을 해보았었다
  • 사용해본 모듈로는 pandas, seaborn, matplotlib, numpy, statsmodels, scipy 등이 있다
  • 각 모듈들에 대한 숙련도는 치트 시트를 확인한 정도이다

리눅스에서 돌리기

  • 윈도우에서 프로젝트를 돌려보려고 시도했지만,
  • 종속성을 설치하는 과정에서 불편한 것이 많아서 리눅스에서 돌려보기로 한다
  • WSL로 윈도우에서 쉽게 리눅스 환경을 사용할 수 있다
  • 나는 WSL2 Ubuntu-18.04 LTS 환경에서 진행했다
  • vscode remote - WSL을 통해 작업했다

종속성 설치

  • apt-get을 통해 필요한 종속성을 설치하는 경우,
  • 먼저 apt를 최신 상태로 업데이트해줘야 한다
1
sudo apt-get update

sudo: pip: command not found

  • pip 커맨드가 없다고 하는데, 설치해줘야 한다
  • pip3를 설치하고, pip 커맨드는 pip3로 대체하여 사용한다
1
sudo apt-get -y install python3-pip

requirements.txt 설치 도중 오류

  • pip3 install -r requirements.txt로 종속성을 설치하는데,

ModuleNotFoundError: No module named ‘skbuild’

  • 이런 경우 말고도 no matching distribution found for numpy==1.20.0처럼 버전을 가져올 수 없다는 오류도 마찬가지로 파이썬 버전을 올려주니 해결됐다

프로젝트 파악하기

1
python3 main.py
  • 기능을 추가하려면 코드가 어떻게 동작하는지 알아야 한다
  • 여기저기 print문을 작성해보면서 차근차근 알아가 보자
  • 파이썬 문법을 자세하게 몰라도 잘할 수 있다

참고

update to wsl2

오후 9:53 2021-07-10 작성됨

  • Remote - WSL 확장도구가 너는 WSL1을 사용 중인데, WSL2로 업그레이드해라 알려줘서 업데이트했다

WSL2로 업데이트하기

  • 둘 버전이 어떤 차이가 있는지 알려주는 페이지가 켜진다

  • Install WSL 1 and update to WSL 2 버튼을 누른다

  • Windows Insiders는 간편하게 명령어 하나로 업그레이드 가능하다고 한다

  • wsl --install 해보고 안되면 수동 설치를 하면 된다

  • 수동 설치도 명령어 4번으로 간편하다

  • 중간에 WSL2를 위한 요구사항을 체크해야 하는데,

  • Ctrl + R msinfo32 또는 윈도우키로 시작 메뉴를 열고 시스템 정보를 입력해서 요구사항을 확인한다

PowerShell (Administrator)
1
2
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  • 위 명령어 입력 후 컴퓨터 재부팅

PowerShell (Administrator)
1
2
3
wsl --set-default-version 2
wsl --list # 설치된 배포판 이름 확인
wsl --set-version {배포판 이름} 2 # wsl --set-version Ubuntu-20.04 2
  • 갑자기 cmd를 썼는데, 중간에 재부팅해서 일관적으로 캡처하지 못했다 ㅠ (뭘 쓰던 상관은 없다.)
  • 기존에 WSL을 사용하고 있는 사람에 한해서 wsl --set-version 명령을 실행해줘야 한다
  • 가이드 문서를 다 따라 했는데, vscode를 켜고 Remote WSL를 사용하면 여전히 WSL1을 쓰고 있다고 말한다
  • 알고 보니까 기존 배포판은 그대로 버전 1이 적용되고 있다
  • 기존 배포판에 WSL2를 적용하려면 wsl --set-version {배포판 이름} {타깃 버전}까지 실행해줘야 한다
  • 5분 정도 걸렸나? 시간이 조금 걸리는 작업이다

참고