ETC
-
문제 상황 opencv를 포함한 Docker 이미지를 만들 때 cv2의 의존 패키지가 없을 때 발생한다. 해결 방법 의존 패키지를 추가로 설치하거나 opencv-python-headless과 같이 애초에 서버용으로 제작된 라이브러리를 활용하자. opencv-python-headless 사용하기 RUN pip3 install opencv-python-headless 의존 패키지 직접 설치하기 RUN apt-get update && apt-get install libgl1-mesa-glx -y RUN apt-get update && apt-get install ffmpeg libsm6 libxext6 -y 참고 ImportError: libGL.so.1: cannot open shared object fil..
Docker 환경에서 ImportError: libGL.so.1: cannot open shared object file: No such file or directory 발생 시 해결 방법문제 상황 opencv를 포함한 Docker 이미지를 만들 때 cv2의 의존 패키지가 없을 때 발생한다. 해결 방법 의존 패키지를 추가로 설치하거나 opencv-python-headless과 같이 애초에 서버용으로 제작된 라이브러리를 활용하자. opencv-python-headless 사용하기 RUN pip3 install opencv-python-headless 의존 패키지 직접 설치하기 RUN apt-get update && apt-get install libgl1-mesa-glx -y RUN apt-get update && apt-get install ffmpeg libsm6 libxext6 -y 참고 ImportError: libGL.so.1: cannot open shared object fil..
2023.05.13 -
문제 상황 Docker에서 poetry install 하는 과정에서 doest not contain any element 오류가 발생했다. packages = [] 가 설정돼 있어, 상위 디렉토리의 의존성까지 확인하는 것이 원인이라고 한다. packages = [{include = "style_transfer"}] 해결 방법 1. poetry install에 --no-root 옵션을 준다. poetry install --no-root 2. packages = [] 라인 자체를 삭제한다. packages = [{include = "style_transfer"}] 참고 Poetry install on an existing project Error "does not contain any element" I a..
Poetry의 does not contain any element 오류 해결하기문제 상황 Docker에서 poetry install 하는 과정에서 doest not contain any element 오류가 발생했다. packages = [] 가 설정돼 있어, 상위 디렉토리의 의존성까지 확인하는 것이 원인이라고 한다. packages = [{include = "style_transfer"}] 해결 방법 1. poetry install에 --no-root 옵션을 준다. poetry install --no-root 2. packages = [] 라인 자체를 삭제한다. packages = [{include = "style_transfer"}] 참고 Poetry install on an existing project Error "does not contain any element" I a..
2023.05.12 -
plot 할 때 원하는 label을 지정 Legend에 표시하고 싶은 내용을 label 인자에 입력해주면 된다. d10_ft = check3[(check3['choice'] == 1)&(check3['decile'] == 10)]['TOTL_SQ_FT_CNT'] d1_ft = check3[(check3['choice'] == 1)&(check3['decile'] == 1)]['TOTL_SQ_FT_CNT'] f, ax = plt.subplots(1, 1) sns.distplot(d10_ft, label = 'decile 10',ax=ax) sns.distplot(d1_ft, label = 'decile 1',ax=ax) ax.legend() 참고 How to add legend to seaborn mult..
[Seaborn] Figure 하나에 Graph 여러 개 그릴 때 Legend 표시하기plot 할 때 원하는 label을 지정 Legend에 표시하고 싶은 내용을 label 인자에 입력해주면 된다. d10_ft = check3[(check3['choice'] == 1)&(check3['decile'] == 10)]['TOTL_SQ_FT_CNT'] d1_ft = check3[(check3['choice'] == 1)&(check3['decile'] == 1)]['TOTL_SQ_FT_CNT'] f, ax = plt.subplots(1, 1) sns.distplot(d10_ft, label = 'decile 10',ax=ax) sns.distplot(d1_ft, label = 'decile 1',ax=ax) ax.legend() 참고 How to add legend to seaborn mult..
2023.04.23 -
문제 상황 Github Actions에서 git diff 명령어를 통해, 이전 Commit 정보 참고를 시도할 경우 다음과 같은 오류가 발생한다. 이때 입력한 branch 등의 이름이 잘못 되지 않아도, 동일한 메시지가 반복된다. git diff origin/main..origin/main^
Github Actions에서 git diff로 이전 Commit 확인하기문제 상황 Github Actions에서 git diff 명령어를 통해, 이전 Commit 정보 참고를 시도할 경우 다음과 같은 오류가 발생한다. 이때 입력한 branch 등의 이름이 잘못 되지 않아도, 동일한 메시지가 반복된다. git diff origin/main..origin/main^
2023.03.13 -
문제 상황 깃 작업 중에서 diff나 status로 로그를 찍어볼 때, 한글이 깨져서 나오는 경우가 있다. git diff --name-only auto-readme..origin/auto-readme
[Git] 한글 깨짐 해결하기문제 상황 깃 작업 중에서 diff나 status로 로그를 찍어볼 때, 한글이 깨져서 나오는 경우가 있다. git diff --name-only auto-readme..origin/auto-readme
2023.03.09 -
원인 Python 3.8 이후 부터, 윈도우는 타 운영체제랑 다른 EventLoop를 기본 값으로 활용한다고 한다. 타 OS 기본 : SelectorEventLoop 윈도우 기본 : ProactorEventLoop 해결 방법 아래 코드를 입력해, 윈도우의 EventLoop를 SelectorEventLoop로 변경하면 된다. asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) 주의 사항 윈도우는 I/O Completion Ports를 활용해 비동기 처리 하기 때문에, SelectorEventLoop로 변경 시 아래와 같은 제약이 있다고 한다. 제약이 문제가 될 경우, Trio 라는 별도의 라이브러리를 사용하는 것이 좋다고 한다. ..
asyncio의 RuntimeError: Event loop is closed 오류 해결 방법원인 Python 3.8 이후 부터, 윈도우는 타 운영체제랑 다른 EventLoop를 기본 값으로 활용한다고 한다. 타 OS 기본 : SelectorEventLoop 윈도우 기본 : ProactorEventLoop 해결 방법 아래 코드를 입력해, 윈도우의 EventLoop를 SelectorEventLoop로 변경하면 된다. asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) 주의 사항 윈도우는 I/O Completion Ports를 활용해 비동기 처리 하기 때문에, SelectorEventLoop로 변경 시 아래와 같은 제약이 있다고 한다. 제약이 문제가 될 경우, Trio 라는 별도의 라이브러리를 사용하는 것이 좋다고 한다. ..
2023.02.28 -
사용 방법 git log --follow --patch 파일명 실행 결과 git log --follow 파일명 만 활용한 경우 파일 이름이 어떻게 변했는지 확인할 수가 없다. git log --follow 2_바이러스.py >> commit d2b40f8af3740a54298d2212a91e442ba84592df Author: ~ Date: Wed Feb 15 21:34:14 2023 +0900 [Rename] : solved, retry 폴더로 구분 commit e4929ce94ceae2f22d77f2a4ff0a21cff117691a Author: ~ Date: Tue May 17 16:52:44 2022 +0900 Add : 2_바이러스.py git log --follow --patch 파일명 을 활..
[Git] 히스토리에서 파일 이름 변경 정보 확인하기사용 방법 git log --follow --patch 파일명 실행 결과 git log --follow 파일명 만 활용한 경우 파일 이름이 어떻게 변했는지 확인할 수가 없다. git log --follow 2_바이러스.py >> commit d2b40f8af3740a54298d2212a91e442ba84592df Author: ~ Date: Wed Feb 15 21:34:14 2023 +0900 [Rename] : solved, retry 폴더로 구분 commit e4929ce94ceae2f22d77f2a4ff0a21cff117691a Author: ~ Date: Tue May 17 16:52:44 2022 +0900 Add : 2_바이러스.py git log --follow --patch 파일명 을 활..
2023.02.23 -
사용 방법 Github의 주소의 일부분을 확인하고 싶은 시점의 commmit id로 변경한다. 변경은 blob/commit-id/파일명 형식으로 하면 된다. 기존 주소 : main 의 파일 확인 예시 : https://github.com/github/codeql/blob/main/README.md 주소 변경 : 이전 commit의 파일 확인 예시 : https://github.com/github/codeql/blob/b212af08a6cffbb434f3c8a2795a579e092792fd/README.md 원리? Git은 파일 변경 히스토리를 blob에 담고, 이를 Tree가 가리키는 방식으로 버전을 관리한다. 최종적으로 Tree를 사용자의 Commit이 가리키도록 하여 원하는 시점의 데이터를 확인할 수..
[Git] 예전에 commit한 파일 Github에서 확인하기사용 방법 Github의 주소의 일부분을 확인하고 싶은 시점의 commmit id로 변경한다. 변경은 blob/commit-id/파일명 형식으로 하면 된다. 기존 주소 : main 의 파일 확인 예시 : https://github.com/github/codeql/blob/main/README.md 주소 변경 : 이전 commit의 파일 확인 예시 : https://github.com/github/codeql/blob/b212af08a6cffbb434f3c8a2795a579e092792fd/README.md 원리? Git은 파일 변경 히스토리를 blob에 담고, 이를 Tree가 가리키는 방식으로 버전을 관리한다. 최종적으로 Tree를 사용자의 Commit이 가리키도록 하여 원하는 시점의 데이터를 확인할 수..
2023.02.22 -
select() CSS 선택자를 활용해서 HTML 태그를 찾는 방식 더 다양한 조건을 활용해 직관적으로 찾을 수 있음 titles = soup.select("div.cont_thumb > p.txt_thumb") for title in titles: if title is not None: print(title.text) find() HTML 태그를 직접 찾는 방식 cont_thumb = soup.find_all("div", "cont_thumb") for cont in cont_thumb: title = cont.find("p", "txt_thumb") if title is not None: print(title.text) 참고 BeautifulSoup 모듈 find와 select의 차이점 - 복잡한 웹..
[BS4] select()와 find()의 차이점select() CSS 선택자를 활용해서 HTML 태그를 찾는 방식 더 다양한 조건을 활용해 직관적으로 찾을 수 있음 titles = soup.select("div.cont_thumb > p.txt_thumb") for title in titles: if title is not None: print(title.text) find() HTML 태그를 직접 찾는 방식 cont_thumb = soup.find_all("div", "cont_thumb") for cont in cont_thumb: title = cont.find("p", "txt_thumb") if title is not None: print(title.text) 참고 BeautifulSoup 모듈 find와 select의 차이점 - 복잡한 웹..
2023.02.21 -
원인 파이썬 파일 실행 시 !python3를 사용할 경우 Arguments가 인식되지 않아 NoneType 에러가 발생할 수 있다. !python3 파일명 해결 방법 %run 을 활용해서 파이썬 파일을 실행하자 %run 파일명
Argument 때문에 jupyter notebook에서 NoneType 에러가 발생할 경우원인 파이썬 파일 실행 시 !python3를 사용할 경우 Arguments가 인식되지 않아 NoneType 에러가 발생할 수 있다. !python3 파일명 해결 방법 %run 을 활용해서 파이썬 파일을 실행하자 %run 파일명
2023.02.14 -
사용 방법 deque 선언 시 maxlen 파라미터에 인자를 전달한다. from collections import deque deque(maxlen = n)
[Python] deque의 최대 길이를 지정해서 선언하기사용 방법 deque 선언 시 maxlen 파라미터에 인자를 전달한다. from collections import deque deque(maxlen = n)
2023.02.06 -
사용 방법 -I(대문자 i) 옵션을 활용하면 된다. 옵션 뒤 " " 영역에 제외하고 싶은 폴더, 파일 명을 와일드 카드 패턴으로 나타내면 된다. 코드 예시 제거 전 !tree -L 2 ./text_recognizer # 출력 ./text_recognizer ├── callbacks │ ├── imtotext.py │ ├── __init__.py │ ├── model.py │ ├── optim.py │ ├── __pycache__ │ └── util.py ... 제거 후 !tree -L 2 ./text_recognizer -I "__pycache__" # 출력 ./text_recognizer ├── callbacks │ ├── imtotext.py │ ├── __init__.py │ ├── model.py..
[Linux] tree에서 특정 폴더, 파일 제외하기사용 방법 -I(대문자 i) 옵션을 활용하면 된다. 옵션 뒤 " " 영역에 제외하고 싶은 폴더, 파일 명을 와일드 카드 패턴으로 나타내면 된다. 코드 예시 제거 전 !tree -L 2 ./text_recognizer # 출력 ./text_recognizer ├── callbacks │ ├── imtotext.py │ ├── __init__.py │ ├── model.py │ ├── optim.py │ ├── __pycache__ │ └── util.py ... 제거 후 !tree -L 2 ./text_recognizer -I "__pycache__" # 출력 ./text_recognizer ├── callbacks │ ├── imtotext.py │ ├── __init__.py │ ├── model.py..
2023.01.19