Julia v1.1.0을 확장한 Docker, Jupyter와 Atom부터 사용하세요.

11333 단어 julialangjulia1.0
Deprecation Warning
이 보도는 이미 유행이 지났으니 한번 보세요.
오늘
요즘은 마음이 나빠졌는데 요즘은 조금 살아났어요.요즘은 파이썬 말고 줄리아만 써요.
Juria Editor는 현재 Atom에서 Juno의 IDE 환경으로 가져옵니다.
https://github.com/terasakisatoshi/MyWorkflow.jl
위의 그림에서 보듯이, 도표를 그리는 코드를 그렸다고 가정하십시오.출력 결과는 다른 창으로 출력되지 않으며, 오른쪽에는 도표가 출력되어 Atom에서 완성할 수 있습니다.
Juria의 Docker 컨테이너와 함께 작업할 수 있습니다.
Juno의 문서에서

있죠.나는 이 사용법을 설명하고 싶다.이렇게 하면 컨테이너에서 이동하는 Juria 차트와 같은 출력 결과도 위의 그림과 같이 UI에 나타날 수 있습니다.
Docker file 만들기
자주 사용하기 때문에 Atom뿐만 아니라
  • Jupyter한테도 이용할 수 있었으면 좋겠어
  • PyCall도 이용하고 싶어요(파이톤과 공존하고 싶어요)
  • Package Compuiler를 통해 Plats의 로드 속도를 높이고자 함
  • 나는 꿈을 이룰 수 있는 것을 만들었다.아래와 같다.
    Dockerfile
    FROM julia:1.1.0
    MAINTAINER SATOSHI TERASAKI
    # for Jupyter
    EXPOSE 8888 
    
    RUN apt-get update
    # to get python(Anaconda) via PyCall
    RUN apt-get install -yq bzip2 python3-tk
    # to build PackageCompiler
    RUN apt-get install -yq build-essential
    # Prepare Julia Packages
    RUN julia -e 'ENV["PYTHON"]=""; using Pkg;Pkg.add(["PyCall", "Conda"])'
    # adjust Python version, you can skip it
    RUN julia -e 'using Pkg, Conda; Conda.add("python=3.6.*"); Pkg.build("PyCall"); using PyCall'
    # install jupyter via Conda package
    RUN julia -e 'using Pkg, Conda; Conda.add("jupyter"); Pkg.add("IJulia"); using IJulia'
    # enable to call python and jupyter from bash
    ENV PATH="/root/.julia/conda/3/bin:$PATH:${PATH}"
    # install PyPlot and Sympy
    RUN julia -e 'using Pkg, Conda; Conda.add("matplotlib"); Pkg.add("PyPlot"); using PyPlot'
    # install SymPy
    RUN julia -e 'using Pkg, Conda; Conda.add("sympy"); Pkg.add("SymPy"); using SymPy'
    # for Juno(IDE; extension of Atom Editor)
    RUN julia -e 'using Pkg; Pkg.add(["Atom", "Juno"])'
    # add PackageCompiler to build Package or generate executable module
    RUN julia -e 'using Pkg; Pkg.add("PackageCompiler"); using PackageCompiler'
    # install Plots
    RUN apt-get install -y qt5-default
    RUN julia -e 'using Pkg; Pkg.add(["UnicodePlots", "GR", "Plots"]);\
                  using UnicodePlots, GR, Plots'
    #compile Plots to reduce overhead of `using Plots`
    RUN julia -e 'using Pkg;\
                  using PackageCompiler; compile_package("Plots",force=true);\
                  using Plots'
    
    RUN apt-get install 섹션을 요약하거나 정리 명령--no-install-recommends 옵션을 추가하면 이미지 크기를 줄일 수 있습니다.
    구축myjulia라는 차가운 이름으로 이미지를 형상화했다.
    $ cd /path/to/this/Dockerfile
    $ docker build -t myjulia .
    
    제정된 방침
    Docker file의 지침이 적혀 있으니 사용 방법을 알고 싶은 사람은 다음 장으로 넘어가세요.
    확장 방정식 이미지
  • 줄리아의 Docker 공식 이미지가 Connecting to a Julia session in a (local) Docker container에 발표되어 이를 확장했다.
  • 포장을 원래의 줄리아에 끊임없이 넣는다.julia -e 'コード'에서 케이스에서 코드를 실행할 수 있음
  • 일반적인 패키지 미리 가져오기
    RUN julia -e 'using Pkg; Pkg.add("導入したいパッケージ名")'
    
    에서 가져올 패키지를 가져옵니다.
    파이썬 버전 조정
    PyCall에서 Anaconda를 가져옵니다.bzip2apt-get에 의존하는 것 같아서 가져왔어요.이때 파이썬의 버전은 3.7인 것 같다.여러 가지 이유로 3.6이나 다른 버전이 되고 싶다면 $ conda install python=3.6.*에 해당한다.
    RUN julia -e 'using Pkg, Conda; Conda.add("python=3.6.*")'
    
    쓰기로 해결하다.그러나 PyCall의 버전이 바뀌었기 때문에 Pkg.build("PyCall")처럼 PyCall을 재구성해야 한다(그렇지 않으면 using PyCall 실패).
     
    Python 측면의 라이브러리 가져오기
    주리아의 콘다.jl 패키지로 가져옵니다.Conda.add("Pythonのライブラリ") 형식으로 가져옵니다.
    다음 예에서는 Python의 라이브러리와 이에 대응하는 Juria 패키지를 가져왔습니다.
    RUN julia -e 'using Pkg, Conda; Conda.add("jupyter"); Pkg.add("IJulia")'
    RUN julia -e 'using Pkg, Conda; Conda.add("matplotlib"); Pkg.add("PyPlot")'
    RUN julia -e 'using Pkg, Conda; Conda.add("sympy"); Pkg.add("SymPy")'
    
    psyhon과jupyer의 실행 모듈이 /root/.julia/conda/3/bin 에 설정되어 있기 때문에 용기 케이스에서 그것을 호출하려고 추가 경로를 추가합니다.이것은 다음과 같은 설정ENV을 통해 실현할 수 있다.
    ENV PATH="/root/.julia/conda/3/bin:${PATH}"
    
    Atom(Juno)과 함께 작업하는 경우
    Docker의 컨테이너 측면에서 가져오는 포장Atom과 포장Juno이 필요합니다.
    RUN julia -e 'using Pkg; Pkg.add(["Atom", "Juno"])'
    
    Package Compuiler를 통한 고속화using Plots(옵션)
    https://hub.docker.com/_/julia에서 시스템 패키지 읽기가 느린 문제를 해결합니다.JIT 컴파일 오버헤드 제거
    RUN julia -e 'using Pkg;\
                  Pkg.add("PackageCompiler");\
                  using PackageCompiler; compile_package("Plots",force=true)'
    
    자신의 맥북 에어 2018년 모델로 Docker file을 구축하면QuartzImageIO 경고화면 근처 건물은 실패했지만 다른 우분투 기계로 진행하면 성공했다.신비롭다.
    사용(Atom에서)
    Atom에서 터미널 시작
    Atom+Juno를 가져온 Ubuntu 시스템을 가정합니다.Ctrl+Shift+p에서 얻은 명령 트레이에terminal을 입력합니다.
    PackageCompiler Julia Client:New Terminal를 클릭하여 Atom의 UI의 일부로 Terminal을 엽니다.이 테미나르는 Atom을 사용할 필요가 없고 일반적인 터미널을 켜도 문제가 없다.아톰에서 하고 싶은지 안 하고 싶은지의 차이점.
    Remark

    위 사진 속 콘스토어는 안 될 것 같아서 해봤는데 호스트 쪽 쥬리아의 환경이 일어나서 제대로 진행되지 못했어요.그러니까 이번엔 이거 안 써도 돼!!!
    쥬리아의 컨테이너 만들기
    위 영역에 생성된 터미널에서 다음 작업을 수행합니다.
    $ sudo docker run -it --network=host --rm  myjulia:latest julia
    
    그러면 다음 그림과 같은 화면을 얻을 수 있다.
    QuartzImageIO 주위에 경고가 있으니 무시합니다.
    Julia Client: Connect External Process
    명령 트레이Julia Client: Connect External Process를 누릅니다.이렇게 되면 아톰과 줄리아의 과정이 연합할 수 있을 것 같아요.

    그러면 아래의 파란색 화면을 얻을 수 있다.
    using Atom; using Juno; Juno.connect(42391)
    
    컨테이너로 이동 중인 Juria REPL(위에서 시작하는 터미널)로 복사합니다.Juno.connect의 번호는 각자의 환경에 달려 있다.
    아톰 측에서 접속 성공에 대한 알림이 왔기 때문에 그걸 확인하면 성공이야.QuartzImageIO 주위에 경고가 있으니 무시합니다.
    이렇게 하면 아톰과 컨테이너가 합작할 수 있다.
    그리고 Atom에 적당한 코드를 쓰면 실행할 수 있습니다.작업 디렉터리를 마운트하지 않아도 이동할 수 있죠.가볍고 유쾌하다.Ctrl+Shift+Enter 욕먹어서 못 찾겠어. 여기서 무시할게.
    사용(Jupter부터)
    다음은 Atom과 관계없이 사용할 수 있습니다.터미널을 열고 다음을 수행합니다.
    $ sudo docker run --rm -it -p 8888:8888 myjulia:latest jupyter notebook --ip=0.0.0.0 --allow-root
    
    그렇다면 다음과 같은 기록을 얻을 수 있을 것이다.
        To access the notebook, open this file in a browser:
            file:///root/.local/share/jupyter/runtime/nbserver-1-open.html
        Or copy and paste one of these URLs:
            http://(4c245d2f219b or 127.0.0.1):8888/?token=ほにゃららららら
    
    호스트 측 브라우저 환경에서 액세스이렇게 되면 아래 로그인 화면이 나온다.
    http://localhost:8888
    여기서는 위 로그libQt5Widgets.so.5 이하의 문자열token=을 복사하여 평소의 Jupyter 순으로 사용할 수 있습니다.
    총결산
  • 줄리아의 Docker file
  • 을 만들어 봤습니다.
  • 아톰과 콜라보 가능
  • Jupyter Notebook의 Juria 커널을 이용해서 Docker의 컨테이너를 달릴 수 있는
  • 많은 오류가 있었고 아무것도 몰랐어요
  • 좋은 웹페이지 즐겨찾기