python 환경 학습 구축 이론 및 실시

5100 단어 PythonDeepLearning
최근에 나는 기계를 배우기 위해python을 접촉하기 시작했다.
이번에 우리는 CentOS7에서python 환경의 구축을 정리할 것이다.

환경

  • CentOS 7.2
  • python 3.5.2
  • VirtualBox 5.1.8
  • 1. IUS Community Project 저장소 추가


    CentOS7의 저장소에는python3 시스템이 제공되지 않으므로 별도의 저장소를 등록해야 합니다.
    # yum install -y https://centos7.iuscommunity.org/ius-release.rpm
    
    다만 평소에 사용하지 않는 저장소이기 때문에 사용하지 않는 것으로 변경하려는 경우에만 사용합니다.
    # vim /etc/yum.repos.d/ius.repo
    [ius]
    enabled=1
    ↓
    enabled=0
    

    2. 최신python 설치


    ius가 제공한 최신은 3.5.2이기 때문에 이번에는 그것을 사용한다.
    # yum clean all
    # yum install --enablerepo=ius -y python35u python35u-libs python35u-devel python35u-pip
    
    그러나 이대로 가면 경로가 기본python으로 향하는 상태이기 때문에 2계를 가리킨다.
    $ python --version
    Python 2.7.5
    
    왜 이렇게 됐는지는 다음과 같은 별명이 붙어 있기 때문이다.
    # ls -l /bin/python                                                            
    lrwxrwxrwx 1 root root 7 12月 17 17:56 /bin/python -> python2
    # ls -l /bin/python2
    lrwxrwxrwx 1 root root 9 12月 17 17:56 /bin/python2 -> python2.7
    # ls -l /bin/python3*                                                          
    -rwxr-xr-x 2 root root 11304  6月 28  2016 /bin/python3.5
    lrwxrwxrwx 1 root root    26  1月  1 20:02 /bin/python3.5-config -> /usr/bin/python3.5m-config
    -rwxr-xr-x 2 root root 11304  6月 28  2016 /bin/python3.5m
    -rwxr-xr-x 1 root root   173  6月 28  2016 /bin/python3.5m-config
    -rwxr-xr-x 1 root root  3398  6月 28  2016 /bin/python3.5m-x86_64-config
    
    여기서 주의해야 할 것은python을 3개의 기호 링크에 다시 붙여서는 안 된다는 것이다.
    다시 붙이면python2계를 사용하시는 분들은 움직이지 않을 거예요.
    예를 들어yum는 사용할 수 없습니다.이런 오류가 발생할 수 있다.
    File "/usr/bin/yum", line 30
        except KeyboardInterrupt, e:
                                ^
    
    따라서 3 계열을 사용할 때는 아래와 같이 사용한다.
    (일반적으로 어떻게 쓰는 게 좋을까요? 아니면 pyenv를 쓰는 게 좋을까요?)
    # ln -s /bin/python3.5 /bin/python3
    # python3 --version
    Python 3.5.2
    
    pip도 2.7을 통과했다.
    # ln -s /bin/pip3.5 /bin/pip3
    # pip3 --version
    pip 9.0.1 from /usr/lib/python3.5/site-packages (python 3.5)
    

    3. 외부 라이브러리 NumPy 및 Matplotlib 설치


    이번에는 학습을 위해 다차원 그룹을 제공하는'NumPy'와 도표와 시각화된 데이터를 그릴 수 있는'Matplotlib'를 사용합니다.
    import Matplotlib를 위해서는 다음 패키지가 필요하므로 설치합니다.
    # yum install --enablerepo=ius -y python35u-tkinter
    
    그런 다음 NumPy 및 Matplotlib를 설치합니다.
    # pip3 install numpy matplotlib
    
    준비 작업은 여기서 마치겠습니다.
    그리고 이런 스크립트를 써서 이동하면 도표를 출력할 수 있습니다.
    sample-graph.py
     1 #!/bin/python3
     2 import numpy as np
     3 import matplotlib.pyplot as plt
     4 
     5 x = np.arange(0,6,0.1)
     6 y = np.sin(x)
     7 
     8 plt.plot(x, y)
     9 plt.show()
    
    sample-graph

    비GUI 환경 처리


    SSH가 원격 연결과 같은 GUI 환경이 아닐 때 상기 스크립트의plt.plot (x, y) 부분을 실행할 때 다음과 같은 오류가 발생할 수 있습니다.
    _tkinter.TclError: no display name and no $DISPLAY environment variable
    
    다음과 같은 처리를 고려할 수 있다.

    처리 1: 파일을 통해 차트 내보내기


    우선python의 설정을 변경합니다.
    /usr/lib64/python3.5/site-packages/matplotlib/mpl-data/matplotlibrc
     38 backend      : tkagg
     ↓
     38 #backend      : tkagg
     39 backend      : agg
    
    상술한 수정과 결합하여 스크립트 "sample-graph.py"의 마지막 줄을 수정합니다.
     8 plt.show()
     ↓
     8 plt.savefig('sample-graph.png')
    
    이제 지정된 차트를 파일로 내보낼 수 있습니다.

    처리 2: GUI에서 작업


    ssh 원격 연결을 통해 컴퓨터를 직접 조작할지 여부입니다.
    만약 기계가 CUI라면 아래 명령으로 GUI로 변경하여 조작하시겠습니까?이제 됐어!
    # systemctl isolate graphical.target
    

    마지막


    나는 이렇게 공부하는데 필요한python의 환경 구축이 완성되었다고 생각한다.
    (환경의 준비 때문에 의외로 시간을 낭비했다...)

    좋은 웹페이지 즐겨찾기