flask db migrate시 psycopg2 image not found 에러 발생시 해결

개발/Flask 2021. 10. 27. 08:20

flask db migrate 커맨드를 입력하였을 때, 위와 같이 psycopg2 관련 import 에러가 발생하며 psycopg2: image not found와 같이 로그가 출력된다. 원인 파이썬과 postgreSQL 연동을 위한 패키지인 psycopg2와 같이 사용되는 psycopg2-binary가 설치되어있지 않아서 발생되는 Import error 였다. 해결방법 pip install psycopg2-binary를 통해 psycopg2-binary를 설치하면 다음과 같이 정상적으로 flask db migrate 커맨드가 작동한다. 참고) https://stackoverflow.com/questions/16407995/psycopg2-image-not-found Psycopg2 image not f..

Article Thumbnail
ImportError: cannot import name 'db' from partially initialized module 'api' 발생 시 해결

개발/Flask 2021. 10. 26. 08:20

Flask로 API 서버를 구성하면서 flask db init을 하였을 때, 위와 같은 에러가 발생하였다. 원인 Controller.py에서 service를 import하고, service는 model을 import 해오고, model은 db를 import하는데 db는 api.controller를 import하는 circular import 방식 때문이었다. 해결방법 아래와 같이 Service안에 필요한 함수 내부로 import 코드를 이동시켜 circular import error를 해결하였다.

Article Thumbnail
iterm2 한글 분리 문제 해결

개발/DevOps 2021. 10. 25. 08:20

iterm2를 설치하면 위와 같이 한글이 분리되어 있다. iterm2의 유니코드 세팅이 none으로 아래와 같이 되어있어서 발생하는 문제이다. iterm2의 Preference -> Profiles -> Text -> Unicode 로 이동하여 Unicode normalization form이 None으로 되어있는 것을 HFS+ 혹은 NFC로 변경하면 된다. 변경 후 위와 같이 정상적으로 한글이 출력됨을 볼 수 있다. 참고) https://jojoldu.tistory.com/580?category=798573 iterm2 에 한글 자소 분리 문제 처음 iterm2를 세팅하게 되면 다음과 같이 한글의 자소가 분리되는 현상을 볼 수 있습니다. iterm2의 유니코드 세팅이 none 으로 되어있기 때문인데요...

Article Thumbnail
Error: Could not locate a Flask application. You did not provide the "FLASK_APP" environment variable, and a "wsgi.py" or "app.py" module was not found in the current directory. 해결방법

개발/Flask 2021. 10. 23. 08:20

Flask 서버를 실행시키다 보면 다음과 같이 Error: Could not locate a Flask application. You did not provide the "FLASK_APP" environment variable, and a "wsgi.py" or "app.py" module was not found in the current directory. 에러가 발생할 때가 있다. 원인 Flask는 FLASK_APP 환경 변수가 지정되지 않은 경우, 자동으로 app.py를 기본 애플리케이션으로 인식한다. 위의 문제는 환경변수가 지정되지 않았는데 app.py도 없을 때를 발생한다. 해결 방법 프로젝트 디렉토리에서 $ set FLASK_APP="{프로젝트 명}" 커맨드를 통해 FLASK_APP 변수를..

Flask-RESTX로 Rest API 서버 구성 & Swagger 문서 작성 - 2

개발/Flask 2021. 10. 22. 08:20

지난 포스트에서 데이터베이스와 Flask를 연동한 것에 이어서 API 설계와 구현을 하려고 한다. Flask-RESTX로 Rest API 서버 구성 & Swagger 문서 작성 - 1 깃헙 레포: https://github.com/Comparelt/comparelt-api GitHub - Comparelt/comparelt-api: The backend server with Flask & PostgreSQL The backend server with Flask & PostgreSQL. Contribute to Comparelt.. eight20.tistory.com 필요한 API의 기능적인 구분은 다음과 같다 로그인/회원가입 API 크롤링 API 제품 검색 API 로그인/ 회원 가입 API는 flask-..

Article Thumbnail
macOS HomeBrew 멈춤 현상 발생시 해결법

카테고리 없음 2021. 10. 21. 08:20

가끔 가다 brew install ~ 혹은 brew update를 입력하였는데 HomeBrew가 무한루프에 빠진 것처럼 멈춰있는 경우가 있다. 원인이 뭔지는 모르겠으나 아마 homebrew 환경변수가 어디선가 꼬인 것 같다. 해결 방법은 다음과 같다. ctrl + c를 통해 멈춤 현상을 중단시킨다. brew doctor brew cleanup brew doctor sudo xcode-select --install brew update 링크 ) https://stackoverflow.com/questions/41030429/brew-upgrade-hangs-on-el-capitan `brew upgrade` hangs on El Capitan I can't run brew upgrade without it..

Flask-RESTX로 Rest API 서버 구성 & Swagger 문서 작성 - 1

개발/Flask 2021. 10. 20. 08:20

깃헙 레포: https://github.com/Comparelt/comparelt-api GitHub - Comparelt/comparelt-api: The backend server with Flask & PostgreSQL The backend server with Flask & PostgreSQL. Contribute to Comparelt/comparelt-api development by creating an account on GitHub. github.com 대학교 팀 프로젝트에서 크롤링 웹서비스를 구성하게되었다. 주어진 기간이 길지않아서 백엔드를 구성하는데 많은 시간을 들일 수 없어서 Flask와 PostgreSQL로 빠르게 API 서버를 구축하였다. 대략적으로 API 서버 기능을 명세하면..

Article Thumbnail
psycopg2 macOS 설치 불가 문제

개발/PostgreSQL 2021. 10. 19. 08:20

psycopg2(postgreSQL 파이썬 어댑터)를 pip으로 설치하면 위와 같이 오류가 발생한다. psycopg2 관련 모듈이 업데이트 되면서 postgresql 바이너리를 찾지 못해서 발생하는 오류이다. homebrew install postgresql 위와 같이 postgresql을 다시 설치하고 나서 정상적으로 psycopg2가 설치되었다. 참고) https://stackoverflow.com/questions/11618898/pg-config-executable-not-found pg_config executable not found I am having trouble installing psycopg2. I get the following error when I try to pip insta..

Article Thumbnail
extends vs implements

개발/Java 2021. 10. 18. 08:20

Extends 클래스가 클래스를 상속받을 때, 인터페이스가 인터페이스를 상속받을 때 extends를 사용한다. 정의, 선언은 모두 부모 클래스가 하며, 상속받는 자식 클래스는 오버라이딩 없이 부모 클래스의 메소드와 변수를 사용 가능하다. JAVA는 부모 클래스가 두 개 이상 존재할 수 없다. Implements 클래스가 인터페이스를 상속하면 implements를 사용한다. interface를 여러 개 상속 받을 수 있다. 부모 클래스는 선언만 하며, 자식 클래스에서 정의를 오버라이딩하여 사용한다.

Class 'kotlin.Unit' was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.5.1, expected version is 1.1.16 빌드 에러

개발/Gradle 2021. 10. 16. 08:20

안드로이드 스튜디오에서 app 빌드를 하였는데 다음과 같이 "Class 'kotlin.Unit' was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.5.1, expected version is 1.1.16." 에러가 발생하였다. 원인은 코틀린의 버전이 낮아서 발생하는 것이었다. build.gradle 파일을 아래와 같이 수정하니 정상적으로 빌드가 되었다.

Article Thumbnail