Package libffi was not found in the pkg-config search path

Package libffi was not found in the pkg-config search path 본인 개발 환경에서는 docker-compose build시 아무런 문제가 없는데, 막상 가상서버에서 docker-compose build를 하면 cffi 빌드 문제가 발생하는 경우가 있습니다. 에러 메시지는 아래와 같습니다. debug log 1 2 3 4 5 6 7 8 9 10 11 12 13 #11 10.05 Building wheels for collected packages: cffi #11 10.05 Building wheel for cffi (setup.py): started #11 10.05 Building wheel for cffi (setup.py): finished with status 'error' #11 10.05 ERROR: Command errored out with exit status 1: #11 10.05 command: /usr/local/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-lt5a4gm7/cffi_f02ff5d2648d42c398bfaa5f9587d9a1/setup.py'"'"'; __file__='"'"'/tmp/pip-install-lt5a4gm7/cffi_f02ff5d2648d42c398bfaa5f9587d9a1/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-m5z8su85 #11 10.05 cwd: /tmp/pip-install-lt5a4gm7/cffi_f02ff5d2648d42c398bfaa5f9587d9a1/ #11 10.05 Complete output (58 lines): #11 10.05 Package libffi was not found in the pkg-config search path. #11 10.05 Perhaps you should add the directory containing `libffi.pc' #11 10.05 to the PKG_CONFIG_PATH environment variable #11 10.05 Package 'libffi', required by 'virtual:world', not found #11 10.05 Package libffi was not found in the pkg-config search path. #11 10.05 Perhaps you should add the directory containing `libffi.pc' 해결 가상 서버에는 libffi-dev가 설치되어 있지 않아서 그렇습니다. Dockerfile 패키지 설치작업에 libffi-dev 를 추가하면 해결됩니다. 1 RUN apk add postgresql-dev gcc python3-dev musl-dev zlib-dev jpeg-dev libffi-dev

7월 4, 2022 · Jaejin Jang

pkg-resources==0.0.0 not found 해결하기

pkg-resources==0.0.0 파이썬 패키지 관리를 위해 freeze를 이용하여 requirements.txt를 만들고 이 파일을 이용해 패키지를 설치하다 보면 만나게 되는 이슈입니다. 보통 아래와 같은 명령어 실행중에 만나게 되겠죠? 1 2 $ pip freeze > requirements.txt $ pip install -r requirements.txt debug log 1 2 Could not find a version that satisfies the requirement pkg-resources==0.0.0 (from -r requirements.txt (line 24)) (from versions: ) No matching distribution found for pkg-resources==0.0.0 (from -r requirements.txt (line 24)) 해결 원인을 찾아보고자 pkg-resources==0.0.0 의 용도가 무엇인지 찾아봤는데, 그냥 버그라네요;; askubuntu 링크 무튼 그냥 패키지에서 제거하셔도 무방합니다. 1 $ pip uninstall pkg-resources==0.0.0

7월 4, 2022 · Jaejin Jang

장고+부트스트랩 파이썬 웹 개발의 정석 - 4

FitYourEarPlug 개발을 위해 공부한 책 내용 정리입니다. 제가 모르는 부분만 적었어요. 11장. 다대다 관계 구현하기 ManyToManyField를 사용한다. 기본적으로 null=Ture가 설정되어 있다. 15장. 폼으로 포스트 작성과 수정기능 구현하기 웹 개발에서는 입력 빈 칸을 폼(form)이라고 한다. CreateView을 사용하면 xxx_form.html 템플릿을 찾는다. 장고는 태그의 action 속성(입력한 데이터를 전송할 url 설정)을 설정하지 않아도 알아서 처리해 준다. 로그인안 사용자에게만 허용하려면 LoginRequiredMixin 클래스 사용 UserPassesTestMixin 클래스를 사용하여 유저의 속성을 확인하는 메소드를 사용할 수 있다. 16장. 외부 라이브러리를 블로그에 활용하기 django-xxx 형태의 패키지를 찾아서 사용하면됨 17장. 폼으로 댓글 기능 구현하기 url 뒤에 #comment-1 과 같이 표기하면 해당 id의 요소로 바로 링크 가능

6월 26, 2022 · Jaejin Jang

담쟁이 - 도종환

저것은 벽 어쩔 수 없는 벽이라고 우리가 느낄 때 그때 담쟁이는 말없이 그 벽을 오른다 물 한 방울 없고 씨앗 한 톨 살아남을 수 없는 저것은 절망의 벽이라고 말할 때 담쟁이는 서두르지 않고 앞으로 나아간다 ...

6월 25, 2022 · Jaejin Jang

장고+부트스트랩 파이썬 웹 개발의 정석 - 3

FitYourEarPlug 개발을 위해 공부한 책 내용 정리입니다. 제가 모르는 부분만 적었어요. 11장. 테스트 주도 개발 적용하기 12장. 템플릿 모듈화하기 13장. 다대일 관계 구현하기 SlugField 사람이 읽을 수 있는 텍스트로 고유 URL을 만들고 싶을 때 사용한다. ForeignKey로 연결되어 있는 레코드를 불러 올 수 있다. 모델명을 소문자로 쓰고 뒤에 _set을 붙이는게 기본 설정이다.

6월 18, 2022 · Jaejin Jang

장고+부트스트랩 파이썬 웹 개발의 정석 - 2

FitYourEarPlug 개발을 위해 공부한 책 내용 정리입니다. 제가 모르는 부분만 적었어요. 8장. 웹 페이지 만들기 9장. 정적 파일과 미디어 파일 관리하기 10장. 페이지 구성 개선하기 장고의 모델을 만들면 기본적으로 pk 필드가 만들어 진다. 일반적인 기능 개발이라면 CBV 방식을 추천한다. ListView는 모델명 뒤에 ‘_list’가 붙은 html 파일을 기본 템플릿으로 사용한다. 장고 templates 폴더의 html 파일은 정적인 파일이 아니다. Pillow: 파이썬 이미지 처리 라이브러리

6월 11, 2022 · Jaejin Jang

장고+부트스트랩 파이썬 웹 개발의 정석 - 1

FitYourEarPlug 개발을 위해 공부한 책 내용 정리입니다. 제가 모르는 부분만 적었어요. 1장. 왜 이 책을 읽어야 하나요? 2장. 웹 개발 준비하기 3장. 웹 프런트엔드 기초 다지기 4장. 부트스트랩 적용하기 5장. 장고의 역할 이해하기 6장. 장고 프로젝트 만들기 7장. 장고 프로젝트에서 앱 개발하기 HTML html에서 사용하는 기능은 태그를 의미하고 속성은 태그안의 속성을 의미. 스타일은 태그 개별로 속성을 설정할 수도 있고, 태그 자체에 설정할 수도 있음. 하나의 웹사이트를 만드는 경우 일관된 디자인을 적용할 텐데 하나의 html 파일 내에서는 태그에 스타일을 설정하면 되지만 파일이 여러개인 경우는 스타일을 복사, 붙여넣기 해가며 관리하는 것은 비효율적이다. 그래서 CSS를 사용한다. CSS는 웹 문선의 디자인을 구현하기 위한 언어이다. CSS 하나만 관리하면 웹사이트 전체 디자인을 제어할 수 있다. 1 2 <hr/> - 수평선 태그 <span> - 별 기능 없음, div와 비슷 부트스트랩 웹 개발에 사용되는 구성요소들을 미리 디자인 해놓은 툴킷 템플릿을 다운 받은 후 index.html 등의 소스코드를 복사하여 필요한 기능을 가져다 쓰면 된다. 다양한 컴포넌트 등을 검색하하여 복붙해서 쓰면 된다. CDN(Contents Delivery Network) 장고 동작 구조 (출처 https://lazy-cloud.tistory.com/95) MTV(Model, Template, View) 패턴 대문 페이지 = Landing Page 모델 변경하면 Migration 해줘야함

6월 10, 2022 · Jaejin Jang

gh-pages 검색 엔진(크롤러)에게 노출시키기 (feat. robots.txt)

robots.txt 현재 저의 gh-pages는 even 테마를 submodule로 관리하고 있고, 빌드시에 생성되는 public 폴더를 deploy하는 구조로 되어 있습니다. 테마의 default robots.txt를 사용하게 되는데 기본 robots.txt에는 아래와 같이 Allow 설정이 없습니다. 1 2 User-agent: * Sitemap: https://jaejin0me.github.io/sitemap.xml 저것때문인지 최근에 올린 글들이 검색엔진에 인덱싱이 안되는거 같아 Allow를 추가한 robots.txt를 만들고 GitAction 스크립트를 수정하여 복사하여 사용하도록 했습니다. 1 2 3 User-agent: * Allow: / Sitemap: https://jaejin0me.github.io/sitemap.xml 1 2 3 4 5 6 7 8 9 10 - name: Build run: hugo --minify + - name: Copy robots.txt + run: | + cp -f ./robots.txt ./public/robots.txt + - name: Deploy uses: peaceiris/actions-gh-pages@v3 if: github.ref == 'refs/heads/master' 링크에 들어가 보시면 Allow가 추가된걸 확인할 수 있습니다. https://jaejin0me.github.io/robots.txt 조회수 좀 늘었으면 좋겠네요ㅎㅎ Go 3 우분투에서 LTE 잡는거 꿀팁인데 진짜..

6월 10, 2022 · Jaejin Jang

앱/웹사이트 개발 계획

남는 시간을 활용해 앱/웹사이트를 개발해보려고 합니다. 개인적으로 세웠던 인생의 큰 목표중에 하나가 개인적인 서비스를 운영하면서 Fun and Profit을 갖는거 였는데, 이번 기회에 서비스 1탄을 한 번 내보려고 합니다. ...

5월 29, 2022 · Jaejin Jang

서피스 고3 우분투에서 LTE 잡기

이번에 서피스 고3 LTE 를 구매했습니다. 우분투 22.04 LTS 버전을 추가로 설치하여 듀얼부팅으로 사용하고 있는데요. LTE 연결할 때 사용자가 확인해줘야할 부분이 있어서 공유차 포스팅합니다. ...

5월 21, 2022 · Jaejin Jang