바뀜

둘러보기로 가기 검색하러 가기
3,691 바이트 추가됨 ,  2023년 12월 21일 (목) 17:51
잔글
편집 요약 없음
4번째 줄: 4번째 줄:     
라이브러리, 패키지, 모듈. 어떻게 구분할 수 있을까?
 
라이브러리, 패키지, 모듈. 어떻게 구분할 수 있을까?
 
+
{| class="wikitable"
서브루틴, 함수들의 모음.
+
!이름
 +
!설명
 +
|-
 +
|모듈
 +
|파일 하나. 파이썬의 경우, .py 파일을 보통 모듈이라 칭한다.
 +
자주 사용하는 함수들을 파일로 작성한 것.
 +
|-
 +
|패키지
 +
|모듈의 집함을 패키지라 부르기도 한다. 일반적으로 init.py를 포함한다.
 +
|-
 +
|라이브러리
 +
|패키지와 많이 혼용된다.
 +
도서관에 책이 많은 것에 비유되어 라이브러리라 한다.
 +
|}서브루틴, 함수들의 모음.
 
===정의===
 
===정의===
 
.py 확장자를 갖는 파일을 모듈이라 하며, 이들을 특정 디렉토리에 모아둔 것을 패키지라 부른다. 그리고 모듈 혹은 패키지를 라이브러리라 부르기도 한다.
 
.py 확장자를 갖는 파일을 모듈이라 하며, 이들을 특정 디렉토리에 모아둔 것을 패키지라 부른다. 그리고 모듈 혹은 패키지를 라이브러리라 부르기도 한다.
12번째 줄: 25번째 줄:  
===현재 설치된 라이브러리 확인===
 
===현재 설치된 라이브러리 확인===
 
현재 설치된 라이브러리는 help('modules')로 확인 가능. help('모듈명')으로 상세설명을 볼 수 있다.  
 
현재 설치된 라이브러리는 help('modules')로 확인 가능. help('모듈명')으로 상세설명을 볼 수 있다.  
 +
{| class="wikitable"
 +
!의도
 +
!방법
 +
!설명
 +
|-
 +
|라이브러리 버전 확인
 +
|pip show 라이브러리명
 +
|프롬프트에서 진행한다.
 +
|}
 
===모듈 설치 관련===
 
===모듈 설치 관련===
 
pip을 사용한다.(Python Install Package의 약자.)
 
pip을 사용한다.(Python Install Package의 약자.)
37번째 줄: 59번째 줄:  
|pip install 패키지명 --upgrade
 
|pip install 패키지명 --upgrade
 
|
 
|
 +
|-
 +
|모듈 삭제
 +
|pip uninstall 패키지명
 +
|해당 라이브러리를 지운다.
 
|}
 
|}
===이외===
+
===이외 자주 사용하는 기능===
 
{| class="wikitable"
 
{| class="wikitable"
 
!의도
 
!의도
47번째 줄: 73번째 줄:  
|pip list
 
|pip list
 
|현재 가상환경에 설치된 라이브러리를 표시해준다.
 
|현재 가상환경에 설치된 라이브러리를 표시해준다.
 +
|-
 +
|모듈 업데이트
 +
|pip install --upgrade 모듈명
 +
<code>-U</code>, <code>--upgrade</code>
 +
|최신버전으로.
 +
|-
 +
|모듈 버전 바꾸기
 +
|pip install 모듈명==버전
 +
|기존에 설치된 것을 지우고 해당 버전을 설치한다.
 +
|-
 +
|라이브러리 백업
 +
|설치한 패키지들에 대한 정보를 담는다.
 +
|pip freeze > requirements.txt
 +
|-
 +
|라이브러리 백업 풀기
 +
|패키지들에 대한 정보를 토대로 그대로 설치한다.
 +
|pip install -r requirements.txt
 +
|}
 +
 +
=== 이외 옵션 ===
 +
{| class="wikitable"
 +
!의도
 +
!옵션
 +
|-
 +
|출력 최소화
 +
|  -q, --quiet
 +
|}
 +
 +
=== 팁 ===
 +
{| class="wikitable"
 +
!의도
 +
!방법
 +
!설명
 +
|-
 +
|위 명령들을 파이썬 코드 안에서 실행.
 +
|파이썬 코드로 라이브러리 설치, 삭제 등이 가능하다.
 +
코드 내에선 !를 맨 앞에 붙이고 터미널에서 사용하는 명령을 쓰면 된다.
 +
|<syntaxhighlight lang="python">
 +
!pip install tensorflow==1.14
 +
</syntaxhighlight>
 
|}
 
|}
 
==사용법==
 
==사용법==
82번째 줄: 148번째 줄:  
|모듈명을 쓰면 모듈의 경로를 알 수 있다.
 
|모듈명을 쓰면 모듈의 경로를 알 수 있다.
 
|
 
|
 +
|-
 +
|형제모듈 불러오기
 +
|import 디렉토리.모듈명
 +
|같은 디렉토리의 모듈을 불러오기 위해선 같은 디렉토리부터 지정해주어야 한다.
 
|-
 
|-
 
|모듈에 정의된 함수, 변수 파악
 
|모듈에 정의된 함수, 변수 파악
 
|dir(모듈명)
 
|dir(모듈명)
 
|
 
|
 +
|-
 +
|상위 경로의 모듈 가져오기.
 +
|import os, sys
 +
sys.path.append('./')
 +
|상위 디렉토리에서부터 하위로 경로를 탐색할 수 있다.(형제 디렉토리의 모듈을 사용할 수 있다.)
 
|}
 
|}
 
==팁==
 
==팁==
 
{| class="wikitable"
 
{| class="wikitable"
|+
   
!자체변수
 
!자체변수
 
!설명
 
!설명
155번째 줄: 229번째 줄:  
===엑셀 조작===
 
===엑셀 조작===
 
엑셀조작을 다음 라이브러리들을 이용해 개별적으로 직접 사용해도 되지만, 보통은 판다스를 이용해 데이터를 다룬다.
 
엑셀조작을 다음 라이브러리들을 이용해 개별적으로 직접 사용해도 되지만, 보통은 판다스를 이용해 데이터를 다룬다.
{| class="wikitable"
+
 
!라이브러리
+
엑셀 조작을 위한 라이브러리들은 다음을 참고하자. [[:분류:엑셀 헨들링|분류:엑셀 헨들링]]
!설명
+
 
|-
+
필요와 특성에 따라 사용하면 됨.
|xlrd
  −
|
  −
|}필요와 특성에 따라 사용하면 됨.
      
=패키지 만들기=
 
=패키지 만들기=
187번째 줄: 258번째 줄:  
|임포트한 모듈의 실제 파일 위치가 담겨있다.
 
|임포트한 모듈의 실제 파일 위치가 담겨있다.
 
|}
 
|}
 +
 +
= 팁 =
 +
파이썬 버전에 따라 지원하지 않는 라이브러리가 있다. 그리고 OS에 따라 지원하지 않는 라이브러리가 있다. 이런 경우엔.... 진짜 해결하기 어려우니... 그냥 맘 접고 버전을 되돌리거나 다른 라이브러리를 사용하는 편이 좋다.
 +
 +
= 문제해결 =
 +
 +
=== 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를 통해 따로 설치했을 경우에 나오는 듯한데, <code>pip install --ignore-installed pycurl</code> 처럼 ignore-installed 옵션을 주면 된다.
 +
 +
=== ERROR: Could not install packages due to an OSError: [WinError 5] Access is denied: ===
 +
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.
 
[[분류:기초]]
 
[[분류:기초]]

둘러보기 메뉴