본문 바로가기

Python

python 설치 및 기본 실행

0. 먼얘기랴~!

이 글에는 python 3.9버전을 설치해보고, 기본 패키지관리자 pip를 설치해보고, 실행해봅니다.

1. Python이 먼가요?

python은 사실 만들어 진지는 상당히 오래된 개발언어로 알고 있습니다.

오랜동안 잘 이어진 만큼 발전도 많이 이루어졌을 겁니다. 저는 접한지 5년정도 된 것 같습니다.

우리나라에서는 java가 굉장히 각광을 받고 있고, 사실상 외국에서도 java는 언어중에서 아마도 제일 많이 사용하는 개발언어가 아닌가 싶긴합니다. 하지만, 저는 개인적으로 java 컴파일 언어보다는 interpreter 언어를 더 선호하는 편이라서, 아마도 이 블로그에서는 java를 다루지는 않을 것 같습니다. 특히나 우리나라는 정부전자프레임워크를 java로 잡으면서 기존 관공서나 기업에서 많이 사용하다보니, 개발자도 상당히 많이 있고, 연봉도 java개발자들이 좀 많이 받고 있는 것 같습니다. 향후에도 이런 부분은 지속되지 않을까 생각은 합니다. 하지만, 제 개인적인 생각은 좀 다릅니다. 이미 micro service형태로 자리잡아 간지가 꽤 되었습니다. 하지만, 기존에 개발된 어플리케이션이 java를 기반으로 그리고, oracle을 기반으로 되어있는 것이 너무 많은 나머지, 시대 흐름을 잘 못따라가고 있는 부분도 없지않나 하는 생각은 오래전부터 가져왔습니다. 기업이 내부 어플리케이션을 바꾼다는 것이 쉽지 않다는 것을 잘 알고 있고, 비용도 그렇고, 마지막으로 기존의 java개발자 상급자가 대다수라는 점이 가장큰 발목을 잡는 부분인 것 같기도 하다 생각됩니다. 개발자들이 방어적인 부분과 함께 자신이 사용하던 언어를 쉽게 바꾸지 않는, 새로운 언어를 받아들여서 하는 개발자들이 그리 많지는 않다 생각합니다. 추후에 시간이 지나면 뭐 평가받을 일일 것입니다. 아무튼 저는 그렇습니다. ^^

 

좀 다른곳을 빠졌네요.

그리 인기있는 언어는 아니었든 python은 머신러닝이 나오면서 갑자기 각광받기 시작했습니다. 

python은 String연산에 아주 최적화된 언어라 생각하고, 이부분이 아마도, python의 큰 장점으로 부곽되었고, 직관적인 언어다 보니, 아이들도 쉽게 접근할수 있는 언어라서 초중고 교과과정도 아마 python이 그 주류를 이룰 것이라 생각합니다.

 

아무튼 앞으로 aws lambda부분은 node.js로 할지 python으로 할지 고민을 하다가 먼저 python을 생각을 했고요. 앞으로 때에 따라서는 nodejs도 다루기도 할 것 같긴합니다.

거두절미하고, python 3.9버전으로 한번 설치를 해보고, 실행해보고 해보겠습니다.

 

 

2. python 3.9다운로드 및 설치(윈도우기준)

https://www.python.org/downloads/release/python-3913/

 

Python Release Python 3.9.13

The official home of the Python Programming Language

www.python.org

여기로 이동합니다. 하단에.

여기서 저는 window os이니까

1. 64bit로 다운받습니다.(https://www.python.org/ftp/python/3.9.13/python-3.9.13-amd64.exe)

받은 후 설치합니다.

 

 

이정도로 해서 설치해줍니다. path부분을 잡을지 안잡을지는 각자 환경에 따라 하시면 됩니다.

커맨드창에서 아래처럼 입력했을 때 3.9.13이라고 나오게 하면 됩니다.

앞단에 /c/는 c://를 의미합니다. bash를 저는 command창으로 사용해서 이런 겁니다. 

/c/python39/python -V
Python 3.9.13

이제 python이 설치되어있다고 생각하고, 다음으로 원하는 개발폴더로 이동해서

가상환경을 만들어보겠습니다. python의 큰 장점이기도 합니다. 가상환경으로 python 개발환경을 각 프로젝트에 따라 맞춰나갈 수 있습니다.

 

우리는 기존에 easyaws로 Git을 사용하여 소스를 공유하고 있습니다.

easyaws에 python-start폴더를 만들고 이동하겠습니다.

cd easyaws
mkdir python-start
cd python-start

이제 python 3.9.13버전으로 가상환경을 만들고 가상환경안쪽으로 들어가겠습니다.

 

kangt@DESKTOP-DQNAI2N MINGW64 /d/app/project/easyaws/python-start (master)
$ /c/Python39/python -m venv venv

kangt@DESKTOP-DQNAI2N MINGW64 /d/app/project/easyaws/python-start (master)
$ source venv/Scripts/activate
(venv) 
kangt@DESKTOP-DQNAI2N MINGW64 /d/app/project/easyaws/python-start (master)
$ python -V
Python 3.9.13
(venv) 
kangt@DESKTOP-DQNAI2N MINGW64 /d/app/project/easyaws/python-start (master)
$

python 실행파일의 위치까지 입력(기본 path로 잡혀있다면 앞부분의 위치까지는 입력이 없어도 됩니다) 한 후에

python -m venv venv라고입력하여 가상환경을 만듭니다.

그리고 source venv/Scritps/activate를 입력해서 가상환경을 활성화합니다.

그럼 커서부분 위쪽에 (venv)라고 표시됩니다. 가상환경 안쪽으로 들어온겁니다.

python -V로 버전을 확인합니다.

 

가상환경에서 빠져나오려면 deactivate를 입력하면 나오게 되고, 

cursor 위쪽에 (venv)라는 부분이 사라집니다. 그럼 가상환경에서 빠져 나온 것입니다.

 

이제 파일하나를 만들어서 간단히 실행해보겠습니다.

# app.py
print("하하하")

파일 app.py를 만들고, 위 코드를 입력합니다.

command에서 이제 실행해봅니다.

(venv) 
kangt@DESKTOP-DQNAI2N MINGW64 /d/app/project/easyaws/python-start (master)
$ python app.py 
하하하
(venv) 
kangt@DESKTOP-DQNAI2N MINGW64 /d/app/project/easyaws/python-start (master)
$

하하하가 잘 출력됩니다. python에서는 print를 사용해서 command에 내용을 출력합니다. node는 javascript니까 console.log이겠죠.

 

이번에는 python 경량 웹서버 flask를 하나 올려서 간단하게 웹서버를 구동시켜보겠습니다.

 

(venv) 
kangt@DESKTOP-DQNAI2N MINGW64 /d/app/project/easyaws/python-start (master)
$ python app.py 
하하하


(venv) 
kangt@DESKTOP-DQNAI2N MINGW64 /d/app/project/easyaws/python-start (master)
$ pip install flask
Collecting flask
  Downloading Flask-2.2.2-py3-none-any.whl (101 kB)
     ---------------------------------------- 101.5/101.5 KB 5.7 MB/s eta 0:00:00
Collecting itsdangerous>=2.0
  Using cached itsdangerous-2.1.2-py3-none-any.whl (15 kB)
Collecting Werkzeug>=2.2.2
  Using cached Werkzeug-2.2.2-py3-none-any.whl (232 kB)
Collecting click>=8.0
  Using cached click-8.1.3-py3-none-any.whl (96 kB)
Collecting importlib-metadata>=3.6.0
  Downloading importlib_metadata-5.1.0-py3-none-any.whl (21 kB)
Collecting Jinja2>=3.0
  Using cached Jinja2-3.1.2-py3-none-any.whl (133 kB)
Collecting colorama
  Using cached colorama-0.4.6-py2.py3-none-any.whl (25 kB)
Collecting zipp>=0.5
  Downloading zipp-3.11.0-py3-none-any.whl (6.6 kB)
Collecting MarkupSafe>=2.0
  Using cached MarkupSafe-2.1.1-cp39-cp39-win_amd64.whl (17 kB)
Installing collected packages: zipp, MarkupSafe, itsdangerous, colorama, Werkzeug, Jinja2, importlib-metadata, click, flask
Successfully installed Jinja2-3.1.2 MarkupSafe-2.1.1 Werkzeug-2.2.2 click-8.1.3 colorama-0.4.6 flask-2.2.2 importlib-metadata-5.1.0 itsdangerous-2.1.2 zipp-3.11.0
WARNING: You are using pip version 22.0.4; however, version 22.3.1 is available.
You should consider upgrading via the 'D:\app\project\easyaws\python-start\venv\Scripts\python.exe -m pip install --upgrade pip' command.
(venv) 
kangt@DESKTOP-DQNAI2N MINGW64 /d/app/project/easyaws/python-start (master)
$

pip install flask라고 입력합니다. flask를 다운로드 하고, 설치합니다.

python의 설치패키지 관리 모듈은 pip입니다. nodejs의 npm이나 yarn와 같다고 생각하면 됩니다.

참고로 flask 공식 url입니다. 참고만 하세요.

https://flask.palletsprojects.com/en/2.2.x/

 

Welcome to Flask — Flask Documentation (2.2.x)

 

flask.palletsprojects.com

 

이제 app.py파일을 아래와 같이 수정해봅니다.

# app.py
from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello_world():
    return "<p>Hello, World!</p>"

if __name__ == '__main__':
    app.run(debug=True)

import 패키지가 있고요.

다음 Flask로 하나 올려놓고요.

해당 app에 /로 접속했을때 처리할 부분을 def로 해서 만들었습니다. def는 python에서 함수(function)선언입니다.

그리고 함수 안쪽을 구분하거나 실행영역 구분을 탭 또느 블랭크의 갯수로 해서 지정합니다.
{}는 java나 java, c에서 사용하는 것처럼. python은 들여쓰기로구분지어 실행합니다. 물론 class도 있고 다 있습니다.

언어잖아요.

마지막으로 하단에 보면 if __name__ == '__main__': 이 부분은 .py로 된 파일을 python명령으로 직접 실행시킬때만 실행이된다고 생각하시면됩니다. 이 정도만 설명을 드리고 python의 문법등 기초적인 부분은 개인적으로 학습하시기 바랍니다.

 

그리고 python app.py를 입력하면 아래처럼 바로 웹서버가 구동됩니다.

 

중간에 http://127.0.0.1:5000 으로 Running되고 있다고 나옵니다.

python flask는 5000번 포트를 사용합니다. nodejs는 3000포트이듯.

(venv) 
kangt@DESKTOP-DQNAI2N MINGW64 /d/app/project/easyaws/python-start (master)
$ python app.py
(venv) 
kangt@DESKTOP-DQNAI2N MINGW64 /d/app/project/easyaws/python-start (master)
$ python app.py 
 * Serving Flask app 'app'
 * Debug mode: on
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on http://127.0.0.1:5000
Press CTRL+C to quit
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 887-894-673

브라우져에서 http://127.0.0.1:5000입력해서 접속해봅니다.

웹 서버를 중지하려면 그냥 Ctrl+C를 입력해서 나오면 됩니다.

 

여기까지 python 설치하고 가볍게 웹서버하나 올려보았습니다. 

완전 편해.... 질질질 쭉쭉쭉 로그 넘어가는 것도 없고... 와우~~~! 대박입니다.

 

자 그럼 다음시간에는

python으로 이메일을 발송하는 프로그램을 간단히 만들어 보겠습니다.


갈길이 아직 많이 남아있습니다. 천천히 급하게 생각치마시고, 따라만 오세요.~~~!

 

 

python 설치 및 기본 실행 대충 버젼

1. python사이트에서 설치본을 받아 설치합니다.

2. venv로 가상환경을 하나 만들어서 활성화 시켜봅니다.

3. 간단한 코드를 입력해보고, 실행되는지 확인해봅니다.

4. pip install flask를 실행해서 flask웹서버를 올려봅니다.

5. app.py에서 웹서버 관련 간단한 코드를 입력하고 웹서버를 구동시켜봅니다.

6. http://127.0.0.1:5000을 입력해서 구동확인을 해봅니다.

7. 잘 나오죠?. 다음시간에 봐유~

 

아휴 이거 머 별거아녀~ 머 이까이꺼 머 대충 머. 

 

주의!

내용상에 잘못된 정보도 있을 수 있습니다. 내가 아는대로 적는거라.

그리고, 심한 사투리와 반말이 무자비하게 섞여있으니, 임산부 및 노약자는 유의하시기 바랍니다. 알겄쥬?

728x90
반응형