코디니팩의 파이썬 개발 환경
이 문서는 코디니팩 라즈베리파이 4의 파이썬에 대한 설명입니다.
- 라즈베리파이 4에 2가지 버전의 파이썬이 설치되어 있어, 사용법을 설명합니다.
- 또, 많은 분들이 파이썬 에디터로써 사용중인, 토니(Thonny) 파이썬의 설정법을 설명합니다.
- 라즈베리파이 4에 대한 설명이지만, 라즈베리파이 3 사용자에게도 도움이 되는 내용입니다.
파이썬의 버전
- 
파이썬을 개발할 때 설치된 파이썬의 버전을 확인하는 것이 좋습니다. 
- 
코디니팩에서는 파이썬 3.x 버전을 지원합니다. - 라즈베리파이 3은 3.5를 지원하고
- 라즈베리파이 4는 3.5와 3.7을 지원합니다.
- 혼란을 줄이려면 라즈베리3과 4에서 똑같이 3.5만 지원하는 것이 좋겠지만, 보다 최신 버전의 파이썬을 사용하고 싶은 사용자를 위해 라즈베리파이 4에서는 3.7을 추가로 지원하고 있습니다.
 
여러 버전의 파이썬 사용하기
- 
라즈베리파이 4에 파이썬 3.7을 추가 지원한 이유는, 사용자에게 보다 최신 버전의 파이썬도 사용할 수 있게 하기 위함이었는데, 의도치 않게 초보자분들에게는 더 어려워진 측면이 있습니다. 
- 
코디니팩, 라즈베리파이 4를 사용하는 분들은, 여러 버전의 파이썬을 다루는 방법을 이해하면 파이썬 학습에 도움이 될 것 같습니다. 이것은 코디니팩 만의 얘기가 아닙니다. PC에서도 여러 버전의 파이썬이 설치될 수 있습니다.
- 
규칙이 간단하여 어렵지 않게 이해할 수 있을 것입니다. 
- 
코디니팩의 파이썬은 3.5와 3.7 두 개의 버전이 있는데, python3 명령을 실행하면 어떤 파이썬이 실행될까요? 
- 
파이썬의 버전은 python3 --version명령으로 확인할 수 있습니다.
$  python3 --version
Python 3.7.3
- 출력 결과가 Python 3.7.3이므로 파이썬 3.7임을 알 수 있습니다.python3.7 --version명령을 실행해보면 동일한 결과를 얻을 수 있습니다.
$  python3.7 --version
Python 3.7.3
- 
python3만 있으면 되지 햇갈리게python3.7도 있을까 생각할 수 있습니다.python3은python3.7의 바로가기 입니다.python3은 실체가 있는 것이 아니고python3.7에 연결만 시켜놓은 것입니다.
- 
파이썬 3.5는 어떻게 실행될지 예상이 되시나요? python3.5 --version를 실행하면 됩니다.
$  python3.5 --version
Python 3.5.4
- 
파이썬 3.5에서 실행되는 코드는 3.7에서도 실행이 가능합니다. 하지만 반대는 항상 성립하는 것은 아닙니다. 3.7에서 처음 만들어진 기능인 경우 3.5에서 사용할 수 없습니다. 
- 
참고로 최신 버전의 Thonny는 3.5를 지원하지 않습니다. Thonny에서 3.5를 사용하고 있다면 예전 버전의 Thonny일 것입니다. 
- 
아래는 파이썬의 버전을 체크하는 예시 화면입니다.  파이썬 버전 체크 파이썬 버전 체크
- 
아래는 파이썬 3.7과 3.5로 간단한 파이썬 파일을 실행해 본 모습입니다.  파이썬 실행 예시 파이썬 실행 예시
python3 바로가기 바꾸기
- 
python3이python3.7을 가리키고 있는데,python3.5를 가리키도록 변경할 수 있을까요?
- 
가능합니다. 권장하지는 않지만 방법은 말씀드리겠습니다. 
- 
파이썬 3.5나 3.7은 시스템에 설치된 시스템의 파이썬입니다. python3이 python3.7을 가리키고 있으면, 시스템의 기본 파이썬 버전이 3.7이라고 표현합니다.
- 
기본 파이썬 설정은 시스템의 설정이므로, 변경하려면 관리자 권한으로 실행해야 합니다. 그래서 설정하는 명령 앞에sudo를 붙입니다.
- 
아래와 같이 변경할 수 있습니다. 
# 기본 파이썬을 3.5로 바꾸기
$  sudo update-alternatives --set python3 /usr/bin/python3.5
# 기본 파이썬을 3.7로 바꾸기
$  sudo update-alternatives --set python3 /usr/bin/python3.7
- 시스템의 기본 파이썬은 바꾸지 않는 것이 좋겠습니다. 다른 소프트웨어 설치시 문제가 발생할 수도 있습니다.
기본 파이썬을 변경하려면?
- python3이 파이썬 3.7을 가리키고 있어서 3.5로 실행할 수 없다는 질문을 받은 적이 있습니다.
- 해결 방법은 의외로 간단합니다. python3으로 실행하지 말고,python3.5로 실행하시면 됩니다.
- sample.py파이썬 파일을 우리가 만들었다고 가정하고 다음과 같이 실행할 수 있습니다.
# 기본 파이썬 버전인 python3.7로 실행
$  python3 sample.py
# 명시적으로 3.7로 실행
$  python3.7 sample.py
# 명시적으로 3.5로 실행
$  python3.5 sample.py
- 원하는 파이썬 버전을 명시해주면 됩니다.
- python3.7로 입력하는 것이 불편하다고 생각되시나요? 그렇지 않습니다.
- 인터넷의 어떤 문서를 보고 python3 sample.py를 실행했다고 가정해보겠습니다.- 실제 실행되는 파이썬은 3.5일수도 있고, 시스템에 따라서 3.5, 3.6, 3.7, 3.8, 3.9 일 수도 있습니다.
- 또는 다른 3.x 버전의 파이썬일 수도 있습니다.
- 나열한 모든 파이썬에서 동작하면 다행인데, 그렇지 않다면 오히려 정보 부족으로 실행할 수 없습니다.
- 하지만 문서에서 python3.7로 실행했다면,적어도 python3.7에서는 동작하겠구나라고 생각할 수 있습니다.
- 따라서 python3보다python3.7이 더 직관적입니다.
 
pip도 3.5와 3.7용으로 두개입니다.
- 인터넷에 있는 라이브러리를 설치할 때 pip3명령을 사용합니다.
- python 3.5가 설치될때 pip 3.5가 함께 설치되고, python 3.7이 설치될 때 pip 3.7이 함께 설치됩니다.
- pip3은- pip3.5나- pip3.7의- 바로가기입니다.
- pip3도 python3과 마찬가지 규칙으로 설치되고, 사용할 수 있습니다.
- pip3으로 실행하기 보다는- pip3.5또는- pip3.7로 버전을 명시해서 실행하는 것이 좋습니다.
파이썬은 시스템 수준의 파이썬이지만 사용자용 pip3가 필요합니다.
- 시스템 수준의 파이썬에 일반 사용자 권한으로 뭔가를 설치할 수 있을까요?
- 불가능합니다. pip3로/usr/lib/python3.5나/usr/lib/python3.7같은 시스템 수준의 폴더에 뭔가를 설치하려면, 관리자 권한이 필요합니다.
- 일반 사용자 계정으로 시스템 수준의 폴더에 설치할 수 없으므로,
일반 사용자가 pip3.x를 실행할 때는 자동으로 자신의 홈폴더에 라이브러리를 설치합니다.
- pi사용자가- pip3.7 install requests명령을 실행하면- /usr/lib/python3.7에 설치되는 것이 아니고
- /home/pi/.local/lib/python3.7에 설치됩니다. 즉- pi사용자의 홈폴더 하위 경로에 설치되는 것입니다.
- 파이썬 버전별로 각각 다른 폴더에 설치됩니다.
 
- 정리해 보면 다음과 같습니다.
# pi 사용자로 아래 명령을 실행
$  pip3.7 install requests
# /home/pi/.local/lib/python3.7/site-packages 에 설치됩니다.
$  pip3.5 install requests
# /home/pi/.local/lib/python3.5/site-packages 에 설치됩니다.
- 파이썬 버전별로 라이브러리들이 설치되는 것을 이해하셨을 것 같습니다.
- 간혹 pip3.5로 설치한 것을,python3.7에서 임포트하는 실수를 할 수 있습니다. 또는 반대로pip3.7로 설치하고,python3.5에서 임포트하는 실수를 하기도 합니다.
- 이것이 안되는 이유는 파이썬 버전별로 라이브러리들이 관리되기 때문입니다.
- 아래는 설치했는데, 임포트할 수 없는 상황을 보여줍니다.
$  pip3.5 install requests
$  python3.7
>> import requests
ModuleNotFoundError: No module named 'requests'
- 이 부분만 주의한다면, 시스템에 여러 버전의 파이썬이 있어도 사용하는데 문제가 없을 것 같습니다.
- 오히려 여러 버전의 파이썬이 있는 것이 더 편리하게 느껴지는 분도 있을 것 같습니다.
내가 맘대로 바꿔도 되는 그런 파이썬은 없을까?
- 있습니다. 파이썬 가상환경(venv, Virtual Environment)을 이용하면 됩니다. 원하는 버전의 파이썬을, 설치하고, 삭제하는 것이 자유롭습니다. 가상환경은 사용자 공간에 설치되므로 관리자 권한이 필요없습니다.
- 여러 버전의 파이썬을 이용할 수 있는, 가상환경의 단점은 디스크 공간을 많이 차지하는 것입니다. SD 카드 기반의 라즈베리파이는 이 단점을 극복할 수 없으므로 가상환경을 사용하지 않습니다.
- 나중에 파이썬이 익숙해지면, SD 카드를 32GB 정도 되는 것으로 구매해서, 파이썬 가상환경을 도전해보는 것도 좋을 것 같습니다.
파이썬 에디터 - Thonny 파이썬
Thonny 실행하기
- 
코디니팩 라즈베리파이4에 포함된 Thonny를 실행해보겠습니다. 
- 
메뉴에서 토니를 실행해주세요.  Thonny 메뉴 Thonny 메뉴
- 
Thonny를 실행하면 대략 다음과 같은 모양으로 실행됩니다. - Thonny는 한글 메뉴를 지원합니다.
- Thonny의 기본 파이썬 버전은 python3.7입니다.
  Thonny 첫화면 Thonny 첫화면
Thonny 설정화면
- 
Thonny의 도구 메뉴에서옵션을 선택해주세요. 그러면 Thonny의 설정 화면이 열립니다.
- 
에디터의 언어를 원하는 언어로 설정할 수 있습니다. 기본값은 한국어입니다 Thonny의 에디터 언어 설정 Thonny의 에디터 언어 설정
- 
설정 화면에서 인터프리터를 선택해주세요.
- 
인터프리터 탭에서 파이썬 버전을 선택할 수 있습니다. 기본값은 python 3.7입니다.
- 
최신 버전의 Thonny는 더 이상 python 3.5를 지원하지 않습니다. 만약 Thonny에서python 3.5를 실행해야 한다면, 예전 버전의 Thonny를 설치해야 합니다. Thonny에서 파이썬 버전 설정 Thonny에서 파이썬 버전 설정
코디니팩에서 아래 파이썬 예제를 실행해보세요.
EXAMPLES
End.