깃허브에 있는 파이썬 프로젝트 돌려보기

파이썬 초보가 처음 깃허브에 있는 파이썬 프로젝트들을 돌려보면서 막혔던 부분과 알게 된 부분을 정리한 글

내 파이썬 지식

  • 인공지능 관련 프로젝트들이 대부분 파이썬으로 작성되어 있어서
  • 관련 프로젝트를 돌려보기 위해서는 파이썬 지식을 필요로 했다
  • 1 ~ 2년 전에 학교 수업으로 데이터분석처리라는 과목을 들으면서 파이썬을 사용해봤는데,
  • os는 윈도우, 도구는 주피터 노트북으로 테이블 데이터 전처리, 데이터 시각화와 분석을 해보았었다
  • 사용해본 모듈로는 pandas, seaborn, matplotlib, numpy, statsmodels, scipy 등이 있다
  • 각 모듈들에 대한 숙련도는 치트 시트를 확인한 정도이다

리눅스에서 돌리기

  • 윈도우에서 프로젝트를 돌려보려고 시도했지만,
  • 종속성을 설치하는 과정에서 불편한 것이 많아서 리눅스에서 돌려보기로 한다
  • WSL로 윈도우에서 쉽게 리눅스 환경을 사용할 수 있다
  • 나는 WSL2 Ubuntu-18.04 LTS 환경에서 진행했다
  • vscode remote - WSL을 통해 작업했다

종속성 설치

  • apt-get을 통해 필요한 종속성을 설치하는 경우,
  • 먼저 apt를 최신 상태로 업데이트해줘야 한다
1
sudo apt-get update

sudo: pip: command not found

  • pip 커맨드가 없다고 하는데, 설치해줘야 한다
  • pip3를 설치하고, pip 커맨드는 pip3로 대체하여 사용한다
1
sudo apt-get -y install python3-pip

requirements.txt 설치 도중 오류

  • pip3 install -r requirements.txt로 종속성을 설치하는데,

ModuleNotFoundError: No module named ‘skbuild’

  • 이런 경우 말고도 no matching distribution found for numpy==1.20.0처럼 버전을 가져올 수 없다는 오류도 마찬가지로 파이썬 버전을 올려주니 해결됐다

프로젝트 파악하기

1
python3 main.py
  • 기능을 추가하려면 코드가 어떻게 동작하는지 알아야 한다
  • 여기저기 print문을 작성해보면서 차근차근 알아가 보자
  • 파이썬 문법을 자세하게 몰라도 잘할 수 있다

참고

python 초보가 어제 오늘 배운 몇가지 명령어 모음

py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# 타입 알아내기
print(type(1)) # <class 'int'>

# 앞뒤 공백 없애기 trim
print(' 안녕 '.strip()) # 안녕

# 문자열 길이 알아내기
print(len('안녕')) # 2

# 숫자 문자열로 캐스팅
print(type(str(1))) # <class 'str'>

# print 출력 파일로 저장하기
import sys
sys.stdout = open('/txt.txt', 'w')
print('안녕하세요요')
print('반갑습니다')
sys.stdout.close()

# 텍스트 파일 저장하기
text_file = open("output.txt", "w")
text_file.write("%s" % '안녕하세요를레이')
text_file.close()

# numpy 1 또는 0으로 초기화 된 배열 얻기
import numpy as np
np.ones((10,10))
np.zeros((10,10))

# numpy 인버트하기 ; 각 원소에 not 연산 수행
np.invert(np.ones((10,10))) # === np.zeros((10,10))

# numpy 배열 크기 확인
np.ones((10,10)).shape # (10, 10)

# numpy 원소값 더하기
np.ones((10,10)).sum() # 100.0

# numpy 행렬 더하기
(np.ones((10,10)) + np.ones((10,10))).sum() # 200

# numpy 행렬 곱하기 ; 마스크로 쓸 수 있겠다
(np.ones((10,10)) * np.zeros((10,10))).sum() # 0

# 유닉스 타임 얻기
import time
time.time()
str(round(time.time())) # 파일명으로 쓸 때

# 이미지 저장
from PIL import Image
image # PIL image
image.save('imageOutput.bmp','BMP')

# pandas 객체 생략없이 print
# row 생략 없이 출력
pd.set_option('display.max_rows', None)
# col 생략 없이 출력
pd.set_option('display.max_columns', None)

cli

1
2
3
4
5
# python 버전 확인
python3 -V

# pip 버전 확인
pip3 -V

python type

1
2
num = 1
print(type(num)) # <class 'int'>
  • 야매로 python 코드에 손을 대기 위해서 필요한 첫 번째 관문
  • 무슨 타입인지 알아야 구글링할 수 있다

파이썬 기본 자료형

  • bool
  • int / float
  • str
  • list