Mac에서 jupyter-notebook을 시작할 수 없을 때의 해결 방법(오류: No such file or directory)

현상



Anaconda를 설치하고 Jupyter-notebook을 시작해 보았지만 움직이지 않습니다.
오류 내용은 다음과 같습니다.
usage: dirname path
/opt/anaconda3/envs/base (root)/bin/jupyter_mac.command: line 3: /jupyter-notebook: No such file or directory


환경


  • anaconda3
  • macOS : Catalina 10.15.1

  • 해결책



    이 현상은 jupyter-notebook을 인스톨 했을 때에, 에러에 의해 인스톨에 실패해, 새로운 환경을 재작성할 때에 「base (root)」를 선택해 인스톨 해 버리면 일어나는 것 같습니다.



    이 오류는 Python 버전에서 2.7을 선택하여 환경을 빌드 할 때 발생했습니다.
    그래서 새롭게 Python3.7에서 환경을 재작성하고 jupyter-notebook을 다시 설치하면 문제없이 동작할 것입니다.



    jupyter-notebook을 설치하고 실행합니다.
    그러면 브라우저에 jupyter-notebook이 열립니다.

    그래도 치료되지 않을 때



    자신이 이 해결책을 찾을 때까지 여러가지 시도한 과정을 실어 둡니다.

    1. 쉘 스크립트 수정



    우선 무슨 일이 일어나고 있는지 알아보기 위해 jupyter_mac.command를 살펴 보겠습니다.
    /opt/anaconda3/envs/base (root)/bin/jupyter_mac.command 를 엽니다.

    jupyter_mac.command
    DIR=$(dirname $0)
    
    $DIR/jupyter-notebook
    

    .command 확장자는 쉘 스크립트이지만 지식이 없었기 때문에 조사해 보면
  • $0: 이 파일의 절대 경로를 가져옵니다
  • dirname : 경로 이름에서 디렉토리 경로 이름 부분의 문자열을 검색합니다.

    즉, $0 으로 /opt/anaconda3/envs/base (root)/bin/jupyter_mac.command 를 취득해, dirname 의 인수에 넣는 것으로 파일명이 없어져, /opt/anaconda3/envs/base (root)/bin/ 가 된다. 그것을 변수 DIR에 넣는 것 같습니다.

    그러나 이것이 잘 작동하지 않고 usage: dirname path 와 오류가 나오므로 다음과 같이 변경합니다.

    jupyter_mac.command
    DIR=$(dirname "$0")  # $0を""で囲む
    
    $DIR/jupyter-notebook
    

    이제 다시 jupyter-notebook을 실행.
    /opt/anaconda3/envs/base (root)/bin/jupyter_mac.command: line 3: /opt/anaconda3/envs/base: No such file or directory
    

    우선 usage: dirname path 라는 에러는 사라집니다.
    그러나 패스에 빈 공간이 있기 때문에 도중에 끊어져 버립니다.

    2. 환경명 변경



    다시 환경명을 빈 공간이 없는 것으로 바꾸어 실행해 보았다.



    jupyter-notebook을 설치하고 실행합니다.
    그러면 브라우저에 jupyter-notebook이 열립니다.

    요약



    정리하면
    1. dirname $0 를 사용할 때는 dirname "$0" 로 한다.
    2. 환경명에 공백을 넣지 않는다

    원래 base (root)의 환경이 무엇인지조차 이해하지 못하는 것이 좋지 않았을까. 상황에 따라 해결책도 바뀔 것이라고 생각하기 때문에, 1개의 참고 정도에 이용해 주세요.

    참고 사이트

  • 좋은 웹페이지 즐겨찾기