MobaXterm을 사용하여 WSL의 matplotlib 그리기

소개



VSCode나 WSL(Ubuntu)을 설치해 가면, 특히 아무것도 생각하지 않고 Remote WSL이 들어가거나 python이 들어가거나 해서 환경이 편리하게 정돈해 나가는 것은 정말로 도움이 됩니다. 다만, matplotlib로 그리기가 되지 않는 문제만은 조금 작업이 필요합니다.
검색하면 VcXsrv를 넣어 대응하고 있는 쪽이 많은 인상을 받았습니다만, 이 때문에 XServer만을 넣는 것은 지루하다…
그래서 궁금했던 MobaXterm을 사용해보기로 결정했습니다.

환경


  • Windows10 Home
  • WSL2/우분투 18.04 LTS

  • MobaXterm 설치



    MobaXterm 페이지 에서 무료 버전을 다운로드합니다.
    Portable 버전이나 Installer 버전을 선택해도 괜찮습니다.
    설치시 선택 사항은 기본값으로 유지할 수 있다고 생각합니다.

    처음 시작할 때는 Windows Firewall에서 차단되므로 허가해 주십시오.

    MobaXterm이 시작되면 당연한 것처럼 사용자 세션에 WSL이 표시되었습니다.
    이것을 더블 클릭하면 WSL이 시작됩니다. 대단해!


    DISPLAY 환경 변수 및 연결 설정



    X11은 DISPLAY 환경 변수를 참조하여 거기에 그리기 정보를 보냅니다.
    WSL에서 matplotlib를 사용하여 그리면이 DISPLAY 환경 변수를 참조하여 MobaXterm에서 실행중인 XServer에 그리기 정보를 보냅니다.
    매번 DISPLAY 환경 변수를 설정하는 것도 힘들기 때문에, 3행째에 표시되고 있는 Your DISPLAY is set to...의 IP를 참조해, WSL의 .bashrc 에 설정을 더해 둡니다.
    설정하는 IP 주소는 각각 다르다고 생각하므로, 적절히 변경해 주세요.

    ~/.bashrc
    $ echo 'export DISPLAY=192.168.xxx.yyy:0.0' >> ~/.bashrc
    $ . ~/.bashrc
    

    또, 그리려고 할 때에는 MobaXterm이 「연결해도 좋을까?」라고 물어줍니다.
    매번 듣는 것이 귀찮은 분은 Remote Access Control을 무효로 해 둡니다.
    Settings → Configuration → X11 → X11 remote access를 'on demand'에서 'full'로 설정합니다.
    다른 설정에 어떤 의미가 있는지 궁금하신 분은 MobaXterm Documentation을 참조하십시오.



    matplotlib로 그려보세요



    예는 굉장히 간단한 것이 좋을 것입니다.
    MobaXterm은 시작된 상태로 두십시오.
    import matplotlib.pyplot as plt
    
    plt.plot([0, 1], [0, 2])
    plt.show()
    

    좋은 웹페이지 즐겨찾기