파이썬34 직접 작성한 모듈(파이썬 파일) import 하는 법 (no module 에러 해결방법) 파이썬 import란? 외부 모듈 또는 함수를 import 시킨다는 것은 결국 해당 파일의 경로를 찾을 수 있어야 한다는 말입니다. pip로 설치한 패키지는 현재 가상환경(또는 기본경로) 내에 있는 특정 폴더 안에서 찾게 됩니다. 보통 아나콘다 가상환경의 경우"C:\사용자\사용자명\anaconda3\envs\가상환경명\Lib\site-packages" 폴더 안에 pip install 한 패키지의 파일들이 저장됩니다. 하지만 프로젝트를 하며 직접 만든 파일의 경로는 직접 지정한 경로에 있기 때문에 import를 할 경우 찾지 못하게 됩니다. 특히 복잡한 폴더 경로를 가진 프로젝트라면 더더욱 그렇습니다. "no module named 'noexist'" 와 같은 에러가 발생하면 해당 경우입니다. .. 파이썬/개발TIP 2024. 7. 9. 키움 API 연동 에러 날 때 해결방법 (아나콘다 32비트 가상환경 생성하기) 아나콘다 32비트 가상환경 아예 처음부터 32비트 아나콘다를 설치하는 방법도 있지만 크게 권장하지 않습니다. 일반적으로는 64비트 환경을 이용하되, 일부 가상환경만 32비트로 셋팅하면 키움 API를 사용할 수 있습니다.참고로 현재 윈도우 기반의 증권사 API 시스템은 대부분 32비트만 지원하고 있습니다.한국투자증권이나 이베스트의 REST API를 사용하면 별도로 필요하진 않습니다. 첫 번째 셋팅 인터넷에 가장 많이 나오는 방법은 아마도 아래와 같은 셋팅입니다. 먼저 아래 코드를 콘다 프롬프트에서 실행해 일시적으로 콘다 셋팅을 32비트로 만들어줍니다.set CONDA_FORCE_32BIT=1 "conda info"를 쳐보면 win-32타입으로 바뀐것을 확인할 수 있습니다. 이후 가상환경을 하나.. 파이썬/Quant 2024. 6. 26. Yolo 객체인식 인식률이 떨어질 경우 확인해야할 것 딸각모드와 인식률이 다르다면? 욜로에서는 기본적으로 detection.py와 같이 딸깍모드로 객체인식 결과를 얻을 수 있습니다.하지만 이 경우 파일이나 동영상으로 결과가 저장되기 때문에 커스텀 알고리즘이 필요하다면 사용하기가 어렵습니다. 좌표 결과를 직접 받아서 실시간으로 처리하려면 이전 포스팅에서 다룬대로 모델 객체를 이용해 직접 이미지를 넣어줘야합니다. 이 때 만약 딸깍테스트의 결과와 직접 model 객체를 사용해서 받은 결과의 인식률, 즉 Confidence 값이 다르다면 의심해봐야할 사항이 하나 있습니다. 테스트 결과 yolo 5, 7버전은 훈련(train) 시 이미지 전처리를 "RGB" 타입으로 합니다. 반대로 yolo 8, 10 버전은 "BRG"형태로 합니다. 따라서 버전에 따라 이미지 .. 파이썬/AI 2024. 6. 20. Yolo v5, v8, v10 가중치 파일(pt 파일)로 모델 객체 로딩하는 방법 Yolov5 모델 객체 로딩하기 Yolov5의 모델 객체 로딩은 이전 포스팅에서 다룬 Yolov7과 동일합니다. 아래 코드는 온라인 연결 없이 로컬에서만 로딩하는 방법입니다. Yolov5의 전체 코드를 다운받아서 저장해줘야합니다.Confidence Threshold값은 따로 설정안하면 디폴트가 0.25입니다. 너무 낮으면 오탐이 많아지니 적당한 선에서 설정해주면 됩니다. import torchdevice = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")# 가중치 파일 경로path = r'.\yolov5\save_model\yolov5_medium_head_finetuned_16_30\heads_5m_e30_best.pt' model = t.. 파이썬/AI 2024. 6. 20. 객체인식 Yolo7(Yolov7) 파인튜닝하는 방법 깃(Git) 클론하기 Yolov7은 ultralytics에서 만든 모델(5,8,10등)과 달리 import 라이브러리가 존재하지 않는 듯합니다. 따라서 먼저 공식 깃허브에서 파일을 다운받아 저장해줍니다. 아래 깃 클론 명령어로 바로 받을 수 있습니다.윈도우 환경의 VSCode 등에서는 git을 pip install로 설치해주고 느낌표를 제외하고 cmd 터미널에서 명령어를 실행해주면 됩니다. # 깃 클론!git clone https://github.com/WongKinYiu/yolov7.git 깃 클론을 할 상황이 아니라면 아래 공식 깃허브 링크에 들어가 초록색 "Code"버튼을 눌러 파일을 다운받은 뒤 압축을 해제해주면 됩니다. https://github.com/WongKinYiu/yolov7 Git.. 파이썬/AI 2024. 6. 20. 파이썬 모듈과 매칭된 파일 확인하고 조작하기 import syssys.modules파이썬 모듈이란 파이썬 모듈은 확장자가 py로 끝나는 파이썬 파일을 말합니다. 결국 기본 라이브러리를 다운받아 import를 하건, 직접 파일을 만들어서 import를 하건 어느 위치에 해당 파일이 있는지 알려주는 것이 모듈이라고 볼 수 있습니다. 모듈이란 파이썬파일, import된 모듈은 해당 파일의 위치값을 가진다고 이해하면 편합니다. 모듈과 매칭된 파일 위치 보는 법 아래와 같이 sys 라이브러리를 사용해 간단히 확인해볼 수 있습니다. "모듈이름 : 모듈객체(파일위치 포함)" 형태의 딕셔너리를 반환합니다. 주의할 점은 딕셔너리의 value값은 문자열이 아닌 'module' 객체라는 점입니다. import syssys.modules 모듈 사전에는 imp.. 파이썬/기본문법 2024. 6. 19. 아나콘다 가상 환경 설정 방법 아나콘다 가상 환경 설정 이유 프로젝트를 하다보면 다양한 패키지를 사용하게 되는데, 시점에 따라 패키지 버전이 달라질 수 있습니다. 만약 아나콘다의 기본 환경인 Base에서 여러 프로젝트를 동시에 진행한다면 같은 패키지의 여러 버전이 충돌할 수 있다는 문제가 생깁니다. 혼자만 하면 있던 패키지를 그대로 사용하면 될 수도 있지만 만약 다른 사람이 짠 코드와 버전을 맞추다 보면 기존에 잘 돌아가던 코드가 안돌아갈 수도 있는 여러 가지 문제가 발생하게 됩니다. 따라서 각 프로젝트 별 가상환경을 설정해 해당 프로젝트에서 사용하는 패키지를 별도로 관리해주는 것이 가장 안전한 방법이라고 볼 수 있습니다. 약간 불편한 점은 아나콘다 Base(기본환경)에서 그냥 불러다 쓸 수 있는 패키지들도 가장 처음에 한 번씩 꼭.. 파이썬/개발TIP 2024. 4. 24. 싸이킷런 (sklearn) train_test_split 에러 발생 원인 싸이킷런 모델 fit 적용 시 에러 발생 원인 정말 별거 아닌데 별거 아니라서 잘 안보이던 에러입니다. " ValueError: Found input variables with inconsistent numbers of samples" 원인은 train_test_split 메소드로 트레인 데이터와 테스트 데이터를 나눌 때 순서를 잘 못 줬기 때문.. Feature인 X_train과 타겟인 Y_train은 당연히 행의 갯수가 같아야하는데 순서를 잘 못 적으면 데이터도 틀어지지만 무엇보다 행의 갯수가 달라지기 때문에 위의 에러가 발생합니다. 아무 생각없이 X_train, Y_train, X_test, Y_test로 나누면 안되고 아래와 같이 X를 먼저, Y를 뒤에 적어줘야 해결이 가능합니다! # 테스트 데이.. 파이썬/라이브러리(API) 2024. 4. 13. 파이썬 한글 형태소 분석, 태깅 라이브러리 KoNLPy 사용법 KoNLPy 패키지 및 JDK설치, 설정은 아래 링크를 참조해주시면 됩니다. https://codevang.tistory.com/351 코엔엘파이를 통해서 사용할 수 있는 형태소 분석기로 Okt(Open Korea Text), 메캅(Mecab), 코모란(Komoran), 한나눔(Hannanum), 꼬꼬마(Kkma) 다섯가지가 있습니다. 한국어 NLP에서 형태소 분석기 사용은 단어의 토큰화라기보다는 형태소(morpheme) 단위로 형태소 토큰화(morpheme tokenization)를 수행하게 됨을 뜻합니다. 영어는 공백 기준으로 끊어주면 되지만 한글은 조사 등 여러 형태에 따라 나눠줘야 하기 때문입니다. KoNLPy 사용하기 Kkma(꼬꼬마)를 비롯한 다섯가지 라이브러리들의 사용법은 동일합니다. imp.. 파이썬/라이브러리(API) 2024. 3. 26. 파이썬 한글 형태소 분석, 태깅 라이브러리 KoNLPy 설치하기 KoNLPy 한국어 텍스트를 분석할 수 있는 kkma(꼬꼬마), Okt 등의 라이브러리를 모아둔 패키지입니다. 업데이트된지 오래되긴 했지만 아무래도 ""nltk"와 같이 외국어 위주의 라이브러리보다는 활용성이 좋은 듯 합니다. KoNLPy 설치하기 파이썬에서 KoNLPy를 설치하기 위해서는 보통 두 가지가 필요합니다. 1. JDK 16 버전 이상 2. 아나콘다 물론 아나콘다 대신 직접 파일을 받아 설치하는 방법도 있습니다만, 아무래도 파이썬으로 데이터 분석 및 머신러닝을 진행하기 위해서는 아나콘다가 가장 효율적이지 않을까 합니다. KoNLPy 사용을 위한 JDK 설치 및 환경변수 설정하기 JDK는 자바가 돌아갈 수 있도록 해주는 개발자 툴이라고 보면 됩니다. "Java Development Kit"의 약.. 파이썬/라이브러리(API) 2024. 3. 25. 파이썬 이중, 다중 리스트 1차원 리스트 하나로 만들기 for문을 이용한 방법 먼저 반복문을 이용해 하나씩 순회하면서 내용을 꺼내와 새로운 리스트에 담아주는 방법입니다. 가장 기본입니다. 다차원 구조일 수록 for문이 늘어나게됩니다. lst = [[1,2,3,4,5], ["a","b","c","d"]] lst_1d = [] for i in lst: for j in i: lst_1d.append(j) 위 구문을 한 줄로 작성하면 아래와 같이 쓸 수 있습니다. lst = [[1,2,3,4,5], ["a","b","c","d"]] lst_1d = [j for i in lst for j in i] 위와 같이 하나씩 추가해줄 때는 리스트의 append()를 사용합니다. 리스트가 제공하는 extend()를 사용하면 리스트를 리스트 안에 추가하더라도 다차원 리스트가 아닌.. 파이썬/기본문법 2024. 3. 25. 파이썬 BeautifulSoup select 사용해서 HTML 웹페이지 크롤링하기 BeautifulSoup select 메소드 기존 포스팅에서는 find와 find_all 메소드를 통해 HTML 페이지를 파싱해 원하는 태그를 찾는 방식을 사용했습니다. 하지만 select 메소드를 사용하면 좀 더 편하게 태그를 찾을 수 있어서 이번에는 해당 방법으로 네이버 증권의 일별 코스피 지수를 크롤링해보도록 하겠습니다 . BeautifulSoup select 사용해 웹페이지 크롤링하기 먼저 HTML의 표 정보를 가져와서 저장하고, 데이터프레임까지 넣을 수 있도록 세 개 라이브러리를 가져오겠습니다. import requests from bs4 import BeautifulSoup import pandas as pd select 메소드를 사용하기 위해 BeautifulSoup의 형식 옵션값으로 'lx.. 파이썬/라이브러리(API) 2024. 3. 22. 파이썬 자바스크립트 json 웹페이지 크롤링하기 JSON (JavaScript Object Notation) json은 데이터를 속성과 값으로 나열해서 표현하는 경량의 데이터 교환 형식입니다. 자바스크립트 구문을 기반으로 웹 브라우저와 서버 간 데이터 교환에 많이 사용됩니다. 이 교환방식을 사용하는 페이지의 경우 HTML 형태가 아니기 때문에 기존에 사용하던 BeautifulSoup을 이용한 HTML 파싱이 불가능합니다. 따라서 다른 방법을 이용해야합니다. 웹페이지 자바스크립트 여부 확인하기 HTML 크롤링을 하던데로 해보면 내용은 없고 이상한 문구들만 긁어와지는 경우들이 있습니다. 이 경우 자바스크립트와 JSON 형태의 웹페이지라고 볼 수 있습니다. 가장 간단한 방법은 브라우저에서 확인하는 방법입니다. 크롬 기준으로 F12를 눌러 개발자 모드를 활성.. 파이썬/라이브러리(API) 2024. 3. 21. 파이썬 뉴스 기사 크롤링 및 빈도 분석, 워드 클라우드 그리기 빈도 분석의 의미 빈도 분석이랑 문장이나 대화 속 각각의 문자들이 출현하는 경향의 정도를 분석하는 것을 의미합니다. 뉴스의 경우 특정 단어의 빈도 분석을 통해 사안의 중요도와 파급력 등을 유추해 볼 수도 있습니다. 워드 클라우드 빈도에 따라 글자크기를 달리해 그림을 그려 직관적으로 이해할 수 있도록 만들어줍니다. 딕셔너리를 이용한 빈도 분석 알고리즘 딕셔너리에 단어를 key로 추가하고 key가 있으면 value값에 카운트를 추가, 없으면 새롭게 딕셔너리에 등록해주는 방식으로 간단하게 사용할 수 있습니다. 하나의 단어만 찾는다면 그냥 변수 하나에 카운트를 하면 되지만 여러개를 찾을 때는 딕셔너리가 좋은 대안이 될 수 있습니다. words = ["사과", "양파", "사과", "피망", "피망", "대파"].. 파이썬/라이브러리(API) 2024. 3. 14. 파이썬 웹페이지 크롤링 표를 데이터프레임으로 만들기 표 형태 데이터 페이지 번호 가져오기 표가 한장이면 그냥 가져오면 되는데 보통 웹페이지에서 표 형태는 상당히 많은 데이터를 가지고 있기 때문에 여러 페이지인 경우가 많습니다. 이럴 때 마지막 페이지 번호를 알아야 반복문을 사용해 모든 데이터를 가져올 수 있기에 먼저 데이터의 처음과 마지막을 파악하는 것이 중요합니다. 네이버의 주식 시가총액 순 주식 데이터를 가져와보겠습니다. 아래 url에 있는 화면입니다. https://finance.naver.com/sise/sise_market_sum.naver?sosok=0&page=1 먼저 가장 아랫쪽에 페이지번호가 있는 html의 태그를 확인하겠습니다. 페이지번호에 마우스로 오른쪽 클릭 후 "검사" 버튼을 누르면 개발자 모드에서 코드를 볼 수 있습니다. 쭉 훑어.. 파이썬/라이브러리(API) 2024. 3. 11. 이전 1 2 3 다음 반응형