"10. 라이브러리"의 두 판 사이의 차이

Pywiki
둘러보기로 가기 검색하러 가기
잔글
 
(같은 사용자의 중간 판 2개는 보이지 않습니다)
64번째 줄: 64번째 줄:
 
|해당 라이브러리를 지운다.
 
|해당 라이브러리를 지운다.
 
|}
 
|}
===이외===
+
===이외 자주 사용하는 기능===
 
{| class="wikitable"
 
{| class="wikitable"
 
!의도
 
!의도
76번째 줄: 76번째 줄:
 
|모듈 업데이트
 
|모듈 업데이트
 
|pip install --upgrade 모듈명
 
|pip install --upgrade 모듈명
|
+
<code>-U</code>, <code>--upgrade</code>
 +
|최신버전으로.
 
|-
 
|-
 
|모듈 버전 바꾸기
 
|모듈 버전 바꾸기
89번째 줄: 90번째 줄:
 
|패키지들에 대한 정보를 토대로 그대로 설치한다.
 
|패키지들에 대한 정보를 토대로 그대로 설치한다.
 
|pip install -r requirements.txt
 
|pip install -r requirements.txt
 +
|}
 +
 +
=== 이외 옵션 ===
 +
{| class="wikitable"
 +
!의도
 +
!옵션
 +
|-
 +
|출력 최소화
 +
|  -q, --quiet
 
|}
 
|}
  
97번째 줄: 107번째 줄:
 
!설명
 
!설명
 
|-
 
|-
|위 명령들을 파이썬 코드 안에서
+
|위 명령들을 파이썬 코드 안에서 실행.
 
|파이썬 코드로 라이브러리 설치, 삭제 등이 가능하다.
 
|파이썬 코드로 라이브러리 설치, 삭제 등이 가능하다.
 
코드 내에선 !를 맨 앞에 붙이고 터미널에서 사용하는 명령을 쓰면 된다.
 
코드 내에선 !를 맨 앞에 붙이고 터미널에서 사용하는 명령을 쓰면 된다.
259번째 줄: 269번째 줄:
 
=== ERROR: Could not install packages due to an OSError: [WinError 5] Access is denied: ===
 
=== ERROR: Could not install packages due to an OSError: [WinError 5] Access is denied: ===
 
pip install update 따위에서 나오는 에러인데, 관리자 권한으로 실행하면 진행이 가능하다.
 
pip install update 따위에서 나오는 에러인데, 관리자 권한으로 실행하면 진행이 가능하다.
 +
 +
=== because these package versions have conflicting dependencies. ===
 +
requirements.txt 따위를 이용해 패키지를 설치할 때 발생하는 에러. 텍스트파일에 명시된 버전과 다른 의존성 패키지에서 명시된 버전이 다른 경우. 다음과 같이 충돌하는 경우 상위버전을 사용하라고 명시하면 된다.(어떤 문제가 생길지도...모르지만;;;;)
 +
 +
<code>pip install --upgrade --no-deps --force-reinstall -r requirements.txt</code>
 +
 +
=== WARNING: Ignoring invalid distribution -ip ===
 +
보통  '-'로 시작하는 파일명 때문에 발생하는 에러. 위 경우엔 -ip.
 
[[분류:기초]]
 
[[분류:기초]]

2023년 12월 21일 (목) 17:51 기준 최신판

1 개요[편집 | 원본 편집]

파이썬 모듈이라고도 한다.(사용하는 용어가 애매하다. 일반적으로 라이브러리가 더 큰 개념이고, 라이브러리 안에 모듈이 있다고 이해하면 좋다.)

라이브러리, 패키지, 모듈. 어떻게 구분할 수 있을까?

이름 설명
모듈 파일 하나. 파이썬의 경우, .py 파일을 보통 모듈이라 칭한다.

자주 사용하는 함수들을 파일로 작성한 것.

패키지 모듈의 집함을 패키지라 부르기도 한다. 일반적으로 init.py를 포함한다.
라이브러리 패키지와 많이 혼용된다.

도서관에 책이 많은 것에 비유되어 라이브러리라 한다.

서브루틴, 함수들의 모음.

1.1 정의[편집 | 원본 편집]

.py 확장자를 갖는 파일을 모듈이라 하며, 이들을 특정 디렉토리에 모아둔 것을 패키지라 부른다. 그리고 모듈 혹은 패키지를 라이브러리라 부르기도 한다.

  • 표준 라이브러리 : 설치 없이 import 가능한 것들.
  • 외부 라이브러리 : 설치한 후 사용.

1.2 현재 설치된 라이브러리 확인[편집 | 원본 편집]

현재 설치된 라이브러리는 help('modules')로 확인 가능. help('모듈명')으로 상세설명을 볼 수 있다.

의도 방법 설명
라이브러리 버전 확인 pip show 라이브러리명 프롬프트에서 진행한다.

1.3 모듈 설치 관련[편집 | 원본 편집]

pip을 사용한다.(Python Install Package의 약자.)

오픈소스 저장소에 있는 패키지를 관리하는 명령이다.

의도 방법 설명
pip 업데이트 python -m pip install --upgrade pip 프롬프트에서 진행한다.
모듈설치 pip install 패키지명 패키지를 설치하면 파이썬의 site-packages에 패키지의 디렉터리가 생긴다.

(가상환경의 Lib 안에 있다.)

버전을 지정해 설치 pip install 패키지명==x.x 과거 버전을 사용하고 싶을 때 특정 버전을 지정한다.
모듈업그레이드 pip install 패키지명 --upgrade
모듈 삭제 pip uninstall 패키지명 해당 라이브러리를 지운다.

1.4 이외 자주 사용하는 기능[편집 | 원본 편집]

의도 방법 설명
설치된 라이브러리 표시 pip list 현재 가상환경에 설치된 라이브러리를 표시해준다.
모듈 업데이트 pip install --upgrade 모듈명

-U, --upgrade

최신버전으로.
모듈 버전 바꾸기 pip install 모듈명==버전 기존에 설치된 것을 지우고 해당 버전을 설치한다.
라이브러리 백업 설치한 패키지들에 대한 정보를 담는다. pip freeze > requirements.txt
라이브러리 백업 풀기 패키지들에 대한 정보를 토대로 그대로 설치한다. pip install -r requirements.txt

1.5 이외 옵션[편집 | 원본 편집]

의도 옵션
출력 최소화 -q, --quiet

1.6[편집 | 원본 편집]

의도 방법 설명
위 명령들을 파이썬 코드 안에서 실행. 파이썬 코드로 라이브러리 설치, 삭제 등이 가능하다.

코드 내에선 !를 맨 앞에 붙이고 터미널에서 사용하는 명령을 쓰면 된다.

!pip install tensorflow==1.14

2 사용법[편집 | 원본 편집]

함수의 이름이 같으면 기존 함수를 덮어쓴다.

라이브러리 내의 함수를 사용하려면 모듈명.함수명() 형태로 사용한다.(모듈 내에 정의되어 있음을 알려주기 위해.

2.1 모듈사용[편집 | 원본 편집]

의도 방법 설명
모듈 사용 import 모듈명 import는 모듈 자체를 불러오는 방식이다.

모듈 내의 함수는 다음과 같이 사용할 수 있다. 모듈명.함수명(변수)

import 패키지명.모듈명 형태로 필요한 하위요소만 불러올 수 있다.

form 모듈명 import * from은 모듈의 함수(메서드)만을 불러오는 방식이다.

모듈 내의 모든 것을 불러온다. 모듈 이름 없이 내용을 이름 그대로 사용할 수 있다. 모듈 내의 함수를 이름 그대로 사용할 수 있지만, 기존 함수와 충돌할 수 있다.

'*' 대신 함수명을 쓰면 해당 함수만 불러올 수 있다. ,로 구분하여 여러 개를 불러올 수도 있다.

from .경로명 import 모듈명 상대경로방식. '.'으로 현재경로 안에 있는 파일임을 알려준다.

'.'은 현재경로, '..'은 상위경로를 의미한다.

import 모듈명 as 바꿀이름명 모듈명이 너무 긴 경우, 모듈의 이름을 바꾸어 임포트 할 수 있다. 모듈의 이름이 길 때 짧게 줄여 사용하기 위함.

바꿀이름명.함수명(변수) 형태로 이용 가능.

모듈 주소 파악 모듈명을 쓰면 모듈의 경로를 알 수 있다.
형제모듈 불러오기 import 디렉토리.모듈명 같은 디렉토리의 모듈을 불러오기 위해선 같은 디렉토리부터 지정해주어야 한다.
모듈에 정의된 함수, 변수 파악 dir(모듈명)
상위 경로의 모듈 가져오기. import os, sys

sys.path.append('./')

상위 디렉토리에서부터 하위로 경로를 탐색할 수 있다.(형제 디렉토리의 모듈을 사용할 수 있다.)

3[편집 | 원본 편집]

자체변수 설명 예시
__name__ 파이썬 파일이 직접 실행된 것인지, 다른 파일에서 임포트 된 것인지 판단하기 위한 용도.

자체실행이라면 __main__이 바인딩되고, 임포트된 경우엔 파일명이 바인딩된다.

일반적으로 모듈을 테스트하기 위한 용도로, 임포트 되었을 때엔 호출되지 않게 할 때 쓰인다.

if __name__=="__main__":
    print("잘 되는지 테스트")

4 라이브러리 종류[편집 | 원본 편집]

목차가 너무 길어질 듯해 앞으론 여기에 추가해 넣도록 하겠다.

4.1 기능[편집 | 원본 편집]

사용 라이브러리 설명
성능 측정 timeit 어떤 방식이 성능에 유리할지 측정한다.
변수 저장 piclkle 특정 객체(변수)의 값을 바이너리로 저장한다.(추후에 다시 사용하기 위해)
사용 라이브러리 설명
금융데이터 차트 mplfinance 금융 관련 차트를 그린다.
이미지 관리 pillow 이미지 열기, 파일의 정보 따위를 열람할 수 있다.

4.2 엑셀 조작[편집 | 원본 편집]

엑셀조작을 다음 라이브러리들을 이용해 개별적으로 직접 사용해도 되지만, 보통은 판다스를 이용해 데이터를 다룬다.

엑셀 조작을 위한 라이브러리들은 다음을 참고하자. 분류:엑셀 헨들링

필요와 특성에 따라 사용하면 됨.

5 패키지 만들기[편집 | 원본 편집]

디렉터리 안에 .py 파일을 넣는다.(디렉터리명이 패키지명이 된다.)

5.1 공통규약[편집 | 원본 편집]

5.1.1 파일 및 디렉토리[편집 | 원본 편집]

__init__.py 이 파일이 있으면 파이썬은 해당 디렉터리를 패키지로 인식한다.(없어도 인식을 하긴 하나, 모든 기능을 다 활용할 순 없음)
__pycache__ 디렉터리. (가상환경 패키지를 설치했다면 가상환경 디렉토리 안에 생기는 듯.)

패키지를 임포트하는 순간 생기는 디렉터리. 이 안에 .pyc 파일이 생긴다.(다음번에 임포트할 때 컴파일 작업을 생략해 속도를 올리기 위함.)

5.1.2 메서드[편집 | 원본 편집]

__file__ 임포트한 모듈의 실제 파일 위치가 담겨있다.

6[편집 | 원본 편집]

파이썬 버전에 따라 지원하지 않는 라이브러리가 있다. 그리고 OS에 따라 지원하지 않는 라이브러리가 있다. 이런 경우엔.... 진짜 해결하기 어려우니... 그냥 맘 접고 버전을 되돌리거나 다른 라이브러리를 사용하는 편이 좋다.

7 문제해결[편집 | 원본 편집]

7.1 ERROR: Cannot uninstall 'pycurl'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.[편집 | 원본 편집]

pycurl 대신 다른 패키지명에도 해당하는 오류이다. 일반적으로 OS를 통해 따로 설치했을 경우에 나오는 듯한데, pip install --ignore-installed pycurl 처럼 ignore-installed 옵션을 주면 된다.

7.2 ERROR: Could not install packages due to an OSError: [WinError 5] Access is denied:[편집 | 원본 편집]

pip install update 따위에서 나오는 에러인데, 관리자 권한으로 실행하면 진행이 가능하다.

7.3 because these package versions have conflicting dependencies.[편집 | 원본 편집]

requirements.txt 따위를 이용해 패키지를 설치할 때 발생하는 에러. 텍스트파일에 명시된 버전과 다른 의존성 패키지에서 명시된 버전이 다른 경우. 다음과 같이 충돌하는 경우 상위버전을 사용하라고 명시하면 된다.(어떤 문제가 생길지도...모르지만;;;;)

pip install --upgrade --no-deps --force-reinstall -r requirements.txt

7.4 WARNING: Ignoring invalid distribution -ip[편집 | 원본 편집]

보통 '-'로 시작하는 파일명 때문에 발생하는 에러. 위 경우엔 -ip.