본문 바로가기
WEB/Python

Python 설치 및 실행(Mac OS)

by Ellen571 2020. 8. 21.

1. bitnami WAMP를 통해 웹 서버 설치

- bitnami WAMP는 Apache, MySQL, PHP를 설치해주는 솔루션

- bitnami WAMP 설치

- /Applications/mampstack-7.3.21-0/apache2 에서 작업 진행

 

 

2. Python 설치 (https://www.python.org/downloads/)

 

 

3. Python 작업할 폴더 만들고 terminal에서 해당 폴더 이동

 

 

4-1. Python 실행 - CLI

- terminal에서 python3 입력하고 엔터하면 python 사용가능

- python 종료시에는 exit()

 

 

4-2. Python 실행 - File

- /Applications/mampstack-7.3.21-0/apache2/htdocs에 파일 생성(helloworld.py)

- helloworld.py 코드 입력

a = 3+4+5
b = a/3
print(b)

- teminal에서 /Applications/mampstack-7.3.21-0/apache2/htdocs 이동

- teminal에서 python3 helloworld.py 실행

** 매번 python3라는 명령어를 넣어 파일을 실행하는 것은 불편

** helloworld.py 실행 권한 필요

 

 

5. helloworld.py 실행 권한 주기

- teminal에서 /Applications/mampstack-7.3.21-0/apache2/htdocs 이동

- sudo chmod a+x helloworld.py

(sudo 슈퍼관리자의 권한으로 명령, ch 변경, mod 권한모듈, a+x 모든 사용자에게 실행권한 추가)

- ls -al로 파일 상태가 -rwxr-xr-x로 바뀌었으면 권한 부여된거임

 

 

6. helloworld.py이 Python에 의해서 실행되게 하기

- teminal에서 type python3 실행해면 python3의 경로 나옴

- helloworld.py 파일에 #!경로 넣기 (이 경로에 해당되는 python 인터프리터를 이용해 실행하라는 의미)

#!/Library/Frameworks/Python.framework/Versions/3.8/bin/python3
a = 3+4+5
b = a/3
print(b)

- teminal에서 ./helloworld.py 실행

** 파이썬을 버전업 됐거나 다른 컴퓨터에서는 실행하지 못함 -> 이식성 낮음

 

 

7. 이식성을 높이기

- Unix계열은 표준처럼 설치된 프로그램이 있음 /usr/bin/env

- env에게 python3의 위치를 물어보고 실행

#!/usr/bin/env python3
a = 3+4+5
b = a/3
print(b)

 

 

8. 프로그램 결과 웹페이지에 출력하기

- Apache에게 확장자가 py인 파일은 python문법에 맞게 처리후 사용자에게 전달해달라고 해야함

- /Applications/mampstack-7.3.21-0/apache2/conf에서 httpd.conf 파일 열기

  -> httpd.conf은 Apache가 동작하는 기본적인 방법을 설정하는 파일

- httpd.conf 파일에서 mod_cgi검색

- #LoadModule cgid_module modules/mod_cgid.so에서 # 지우기

  -> 웹서버와 파이썬을 cgi방법으로 연동하는데 Apache는 기본적으로 꺼져있기에 #을 지워서 활성화 시킴

- httpd.conf 파일에서 DocumentRoot검색

  -> DocumentRoot은 사용자 요청이 들어왔을 때 해당 디렉토리에서 찾으라고 하는 설정

- <Directory 디렉토리></Directory> 내부의 가장 하단에 코드 넣기

<Directory "/Applications/mampstack-7.3.21-0/apache2/htdocs">
	
    내용
    
    <Files *.py>
        Options ExecCGI
        AddHandler cgi-script .py
    </Files>
    
</Directory>

  -> Option ExecCGI : CGI 기능 활성시킴

  -> AddHandler cgi-script .py : 확장자가 py인 파일은 CGI로 실행시킴

- helloword.py 코드 바꾸기

#!/usr/local/bin/python3
print("content-type:text/html; charset=UTF-8\n")
a = 3+4+5
b = a/3
print(b)

  -> #!/usr/bin/env python3는 오류가 생겨 #!/usr/local/bin/python3로 변경

  -> 웹서버가 웹브라우저에 어떻게 출력해야하는지 알려주는 코드 추가 print("content-type:text/html; charset=UTF-8\n")

- 설정이 바뀌었으니 웹 서버 껐다 켜기(Bitnami MAMP - Apache Web Server - Restart)

- http://localhost:8000/helloworld.py으로 접속

반응형

'WEB > Python' 카테고리의 다른 글

[Python] 파일 읽기 open().read()  (0) 2020.08.22
[Python] cgi.FieldStorage()  (0) 2020.08.22
CGI?  (0) 2020.08.21
Python을 배우는 이유?  (0) 2020.08.20
Python으로 웹 애플리케이션 구현?  (0) 2020.08.20