파이썬웹프로그래밍(실전편) — 보완부분

파이썬 가상환경 관련

예제에서 제공되는 패키지 목록 : requirements.txt

pip install -r $예제경로/requirements.txt

Package libffi was not found in the pkg-config search path.
Perhaps you should add the directory containing `libffi.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libffi' found

관련 에러가 발생하게됨..
 centos 기준으로 libffi-devel 패키지가 설치되어 있어야 정상적으로 pip를 이용한 설치 수행 가능
 (yum install libffi-devel)
 만약 우분투에서도 동일한 에러가 발생 할 경우
 libffi-dev 일듯…

이것은 설치된 리눅스 환경별로 다를 수 있지만..
 예제를 위해서 centos를 minimal 로 설치했다고 가정한다면…
 아마도 반드시 동반 하는 문제 였을 것으로 생각되고

그렇다면 책에는 약간의 설명이 필요하지 않았을까.. 싶다..
 예제의 requirements.txt 의 목록들중…
 위에 설명했던 libffi외에 다른 라이브러리를 참조할 경우 ”No package ’XXXXX’ found” 라는 형태의 에러가 발생할 가능성이 높음

물론 윈도우 기반의 python + pycharm 을 이용하는 경우 발생하지 않는 에러

권한 관련

예제를 리눅스 상에서
 apache, mod_wsgi, virtualenv 환경을 구성후에 로그인 시도를 하게 되면
 Exception Type: OperationalError
 Exception Value: unable to open database file
 에러가 발생함

교제의 경우 runserver를 이용하기 때문에
 실행된 python 프로세스의 UID 가 해당 파일을 다루던(쓰기,수정,삭제등) user 이기 때문에 오류가 없었을텐데
 (윈도우 기반의 pycharm 역시 동일)
 리눅스의 경우 해당 프로젝트 디렉토리(ch2…chN)와 db.sqlite3 파일의 권한이 웹(일반적으로 nobody, apache)유저에게 ”쓰기”권한이 부여되어야 문제가 일어나지 않음

ch2, ch3 의 static 경로 이슈

(이부분은 본인이 개발 관련 지식이 없기 때문에 발생한 내용일 수 있으며, 개발자의 경우 에러가 발생하지 않도록 알아서 잘 처리했을 가능성이 높음)

base.css : /static/admin/css/base.css
 login.css : /static/admin/css/login.css
 파일이 존재하지 않음

역시 runserver를 이용할 경우 정상 출력되지만..
 apache, mod_wsgi, virtualenv 환경에서 테스트를 해보면 보여지지 않음

해당 파일은 장고패키지
 ($VirtualENV/vDjBook/django/contrib/admin/static/)
 내에 존재하는 것으로서

임시로나마
 cp $VirtualENV/vDjBook/django/contrib/admin/static/ $HOME/ch2/static
 아파치 설정의 Alias 설정으로 처리는 가능하나

이 방법이 맞는 것인지 판단이 되지 않는 상황
 runserver 구동시 정상출력 되었다는 것은..
 프로그램 루틴 안에서 장고경로의 css 위치를 선언 하는 부분이 있고, 유효 했다는 것인데..

아파치를 통하자 반영이 안되었던 것