분류 전체보기 32

[pipenv] pipenv install throws --system is intended to be used for pre-existing Pipfile installation 에러발생 시 대처방안

pipenv를 이용해서 파이썬을 설치할 때 이러한 에러가 발생할 경우가 있습니다. pipenv install throws -system is intended to beused for pre-existing Pipfile installation 대처방법 pipenv-venv 를 실행하여, 가상환경 목록을 확인하고, 문제가 된 가상환경 경로를 확인합니다. 그리고, rm-rf ${가상환경_경로} 를 실행해서 관련 디렉토리를 지웁니다. 마지막으로 다시한번 인스톨을 실행합니다.

pipenv 사용법

pipenv란? pipenv는 Python에서 개발 환경을 구축하는 데 유용한 패키지 관리 도구입니다. npm과 yarn과 같은 패키지 관리 도구의 파이썬 버전과 같습니다. 또한 가상 환경을 구축할 수 있습니다. 가상 환경을 만들면 어떤 이점이 있는가 하면 프로젝트마다 다른 버전의 Python을 사용할 수 있거나 패키지 등도 프로젝트별로 관리할 수 있습니다. pipenv 설치 첫째, pipenv를 설치하는 방법입니다. 이번 pipenv의 설치에는 Homebrew 에서 갑니다. 아직 Homebrew 를 설치 하지 않은 분은, 여기서 다운로드 해주세요. [homebrew] 이제 다음 명령을 실행합니다. $ brew install pipenv 이제 pipenv가 설치 됩니다. 다음 명령 으로 확인해 봅시다. ..

ULID, UUID와 MySQL B-tree index

최근 ULID(https://github.com/ulid/spec)가 팀 내에서 화제거리이다. ULID를 PK로 했을 때, auto_increment의 sequencial insert 패턴과 비교해 어떤 움직임이 있는 지, 그리고 어떤 영향을 예상할 수 있을까에 대해서 조금 이야기 해 보고 싶다. 우선 UUID의 이야기를 보면, UUID는 기본적으로 random성격의 ID가 발행되는 데, 이 것을 PK로 해서 MySQL에 insert할 때에는 random으로 들어갈 가능성이 높을 것으로 생각된다. 이 때 MySQL이 사용하고 있는 B-tree index는 어떤 동작을 할까? 많은 사람들은 B-tree index의 "B"는 Binary라고 생각하는 사람도 많은 것 같은데, 여기서 B는 "Balanced"의..

MySQL 2022.02.25

Chrome에서 Bookmark를 모두 지워 버렸을 때의 복구 방법

Chrome에서 profile 관리를 잘못해서 profile을 지워 버린 경우는, 그 profile에 등록되어 있는 Bookmark나 history등도 같이 지워져 버립니다. 저도 profile를 정리하면서 잘못 profile 정보를 지워 버린 적이 있습니다. 결국 북마크 정보는 어느 정도까지 복구 할 수 있었고 정말 다행이였습니다 ~ Mac을 전제로 어떻게 복구했는지 소개 해 보도록 하겠습니다. Chrome과 관련된 다양한 정보는 다음 DIR에 저장되어있습니다. /Users/${USER_NAME}/Library/Application Support/Google/Chrome/Default 만약, profile를 여러개 가지고 있는 경우는, 다음과 같이 관리됩니다. /Users/${USER_NAME}/Lib..

Computer 2022.01.14

anaconda & jupyter notebook installation in EC2 with Ubuntu

anaconda installer를 다운 받자. 참고 : https://www.anaconda.com/products/individual wget https://repo.continuum.io/archive/Anaconda3-2021.05-Linux-x86_64.sh sh Anaconda3-2021.05-Linux-x86_64.sh # 우분투 기준 vi /etc/bash.bashrc # 맨 마지막에 기술한다! export PATH=/root/anaconda3/bin:$PATH 새로운 아나콘다 가상환경 만들기 conda update --all conda create -n py38 python=3.8.8 conda activate conda install jupyter notebook 설정 파일을 만든다. ..

OCR with Tesseract

테스트용 스탭서버가 우분투 이기 때문에 우분투를 기준으로 테스트 해 보았다. tesseract install sudo apt install tesseract-ocr sudo apt install libtesseract-dev pip install pip install Pillow pip install pytesseract download the trained datafile sudo apt-get install tesseract-ocr-* https://github.com/tesseract-ocr/tessdata GitHub - tesseract-ocr/tessdata: Trained models with support for legacy and LSTM OCR engine Trained models w..

Insert intention lock

"Insert intention lock"은 레코드 인서트 전에 INSERT조작에 의해서 설정되는 Gap lock의 일종입니다. 이 락(잠금)은 동일한 인덱스 갭에 인서트된 여러 트랜잭션이 갭(간격) 내에서 동일한 위치에 인서트되지 않을 경우 서로 기다릴 필요가 없도록 인서트하려는 의도를 나타냅니다.값이 4와 7의 인덱스 레코드가 존재한다고 가정합니다. 각각 5와 6의 값을 인서트하려는 트랜잭션은 인서트된 행에 대한 단독 잠금을 얻기 전에 각각 4와 7 사이의 간격을 인서트 인텐션 락으로 잠그지만 행이 충돌하지 않으므로 서로 차단하지 않습니다. 다음 예에서는 인서트된 레코드에 대한 배타적 잠금을 얻기 전에 인서트 인텐션 락을 실행하는 트랜잭션을 보여 줍니다. 이 예에는 A와 B라는 두 고객이 포함됩니다...