1번째 줄: |
1번째 줄: |
− | <youtube>https://www.youtube.com/watch?v=mGDZkQre5E4</youtube>
| |
− |
| |
| | | |
| ==개요== | | ==개요== |
6번째 줄: |
4번째 줄: |
| | | |
| 라이브러리, 패키지, 모듈. 어떻게 구분할 수 있을까? | | 라이브러리, 패키지, 모듈. 어떻게 구분할 수 있을까? |
− | | + | {| class="wikitable" |
− | 서브루틴, 함수들의 모음. | + | !이름 |
| + | !설명 |
| + | |- |
| + | |모듈 |
| + | |파일 하나. 파이썬의 경우, .py 파일을 보통 모듈이라 칭한다. |
| + | 자주 사용하는 함수들을 파일로 작성한 것. |
| + | |- |
| + | |패키지 |
| + | |모듈의 집함을 패키지라 부르기도 한다. 일반적으로 init.py를 포함한다. |
| + | |- |
| + | |라이브러리 |
| + | |패키지와 많이 혼용된다. |
| + | 도서관에 책이 많은 것에 비유되어 라이브러리라 한다. |
| + | |}서브루틴, 함수들의 모음. |
| ===정의=== | | ===정의=== |
| .py 확장자를 갖는 파일을 모듈이라 하며, 이들을 특정 디렉토리에 모아둔 것을 패키지라 부른다. 그리고 모듈 혹은 패키지를 라이브러리라 부르기도 한다. | | .py 확장자를 갖는 파일을 모듈이라 하며, 이들을 특정 디렉토리에 모아둔 것을 패키지라 부른다. 그리고 모듈 혹은 패키지를 라이브러리라 부르기도 한다. |
14번째 줄: |
25번째 줄: |
| ===현재 설치된 라이브러리 확인=== | | ===현재 설치된 라이브러리 확인=== |
| 현재 설치된 라이브러리는 help('modules')로 확인 가능. help('모듈명')으로 상세설명을 볼 수 있다. | | 현재 설치된 라이브러리는 help('modules')로 확인 가능. help('모듈명')으로 상세설명을 볼 수 있다. |
| + | {| class="wikitable" |
| + | !의도 |
| + | !방법 |
| + | !설명 |
| + | |- |
| + | |라이브러리 버전 확인 |
| + | |pip show 라이브러리명 |
| + | |프롬프트에서 진행한다. |
| + | |} |
| ===모듈 설치 관련=== | | ===모듈 설치 관련=== |
| pip을 사용한다.(Python Install Package의 약자.) | | pip을 사용한다.(Python Install Package의 약자.) |
31번째 줄: |
51번째 줄: |
| |패키지를 설치하면 파이썬의 site-packages에 패키지의 디렉터리가 생긴다. | | |패키지를 설치하면 파이썬의 site-packages에 패키지의 디렉터리가 생긴다. |
| (가상환경의 Lib 안에 있다.) | | (가상환경의 Lib 안에 있다.) |
| + | |- |
| + | |버전을 지정해 설치 |
| + | |pip install 패키지명==x.x |
| + | |과거 버전을 사용하고 싶을 때 특정 버전을 지정한다. |
| |- | | |- |
| |모듈업그레이드 | | |모듈업그레이드 |
| |pip install 패키지명 --upgrade | | |pip install 패키지명 --upgrade |
| | | | | |
| + | |- |
| + | |모듈 삭제 |
| + | |pip uninstall 패키지명 |
| + | |해당 라이브러리를 지운다. |
| |} | | |} |
− | ===이외=== | + | ===이외 자주 사용하는 기능=== |
| {| class="wikitable" | | {| class="wikitable" |
| !의도 | | !의도 |
45번째 줄: |
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> |
| |} | | |} |
| ==사용법== | | ==사용법== |
− | ===모듈 불러오기=== | + | 함수의 이름이 같으면 기존 함수를 덮어쓴다. |
| + | |
| + | 라이브러리 내의 함수를 사용하려면 <code>모듈명.함수명()</code> 형태로 사용한다.(모듈 내에 정의되어 있음을 알려주기 위해. |
| + | ===모듈사용=== |
| {| class="wikitable" | | {| class="wikitable" |
| !의도 | | !의도 |
75번째 줄: |
146번째 줄: |
| |- | | |- |
| |모듈 주소 파악 | | |모듈 주소 파악 |
− | |모듈명을 쓰면 모듈의 경로를 알 수 있다.?????? | + | |모듈명을 쓰면 모듈의 경로를 알 수 있다. |
| | | | | |
| + | |- |
| + | |형제모듈 불러오기 |
| + | |import 디렉토리.모듈명 |
| + | |같은 디렉토리의 모듈을 불러오기 위해선 같은 디렉토리부터 지정해주어야 한다. |
| |- | | |- |
| |모듈에 정의된 함수, 변수 파악 | | |모듈에 정의된 함수, 변수 파악 |
| |dir(모듈명) | | |dir(모듈명) |
| | | | | |
| + | |- |
| + | |상위 경로의 모듈 가져오기. |
| + | |import os, sys |
| + | sys.path.append('./') |
| + | |상위 디렉토리에서부터 하위로 경로를 탐색할 수 있다.(형제 디렉토리의 모듈을 사용할 수 있다.) |
| |} | | |} |
− |
| |
− | === 모듈 사용 ===
| |
− | 함수의 이름이 같으면 기존 함수를 덮어쓴다.
| |
− |
| |
− | 라이브러리 내의 함수를 사용하려면 <code>모듈명.함수명()</code> 형태로 사용한다.(모듈 내에 정의되어 있음을 알려주기 위해.
| |
| ==팁== | | ==팁== |
| {| class="wikitable" | | {| class="wikitable" |
− | |+
| |
| !자체변수 | | !자체변수 |
| !설명 | | !설명 |
136번째 줄: |
210번째 줄: |
| !라이브러리 | | !라이브러리 |
| !설명 | | !설명 |
| + | |- |
| + | | |
| + | | |
| + | | |
| |- | | |- |
| |금융데이터 차트 | | |금융데이터 차트 |
144번째 줄: |
222번째 줄: |
| |pillow | | |pillow |
| |이미지 열기, 파일의 정보 따위를 열람할 수 있다. | | |이미지 열기, 파일의 정보 따위를 열람할 수 있다. |
− | |}
| |
− | ===웹 관련===
| |
− | {| class="wikitable"
| |
− | !사용
| |
− | !라이브러리
| |
− | !설명
| |
| |- | | |- |
− | |URL 다루기 | + | | |
− | |urllib | + | | |
− | |url을 다루는 모듈을 모아둔 패키지. 다양한 모듈을 포함하고 있다. | + | | |
− | |-
| |
− | |HTML 크롤링
| |
− | |[http://id8436.iptime.org:8080/mediawiki/index.php/Beautifulsoup4 beautifulsoup4]
| |
− | |웹 크롤링.
| |
− | #HTML을 가져오고
| |
− | #이 안에서 의미 있는 데이터를 뽑아내는 게 일반적인 절차.
| |
− | 뷰티플 스프는 2번에 해당되는 일을 처리한다.
| |
− | |-
| |
− | |HTML 동적 크롤링
| |
− | |[http://id8436.iptime.org:8080/mediawiki/index.php/Selenium selenium]
| |
− | |동적 웹사이트에선 beautifulsoup만으로는 정보를 긁어오지 못한다. 사전에 셀레니움으로 작업을 해주어야 한다.
| |
| |} | | |} |
| ===엑셀 조작=== | | ===엑셀 조작=== |
| 엑셀조작을 다음 라이브러리들을 이용해 개별적으로 직접 사용해도 되지만, 보통은 판다스를 이용해 데이터를 다룬다. | | 엑셀조작을 다음 라이브러리들을 이용해 개별적으로 직접 사용해도 되지만, 보통은 판다스를 이용해 데이터를 다룬다. |
− | {| class="wikitable"
| + | |
− | !라이브러리
| + | 엑셀 조작을 위한 라이브러리들은 다음을 참고하자. [[:분류:엑셀 헨들링|분류:엑셀 헨들링]] |
− | !설명
| + | |
− | |- | + | 필요와 특성에 따라 사용하면 됨. |
− | |xlrd
| |
− | |
| |
− | |}필요와 특성에 따라 사용하면 됨.
| |
| | | |
| =패키지 만들기= | | =패키지 만들기= |
200번째 줄: |
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. |
| [[분류:기초]] | | [[분류:기초]] |