2012-12-27 1 views
5

webapp (플라스크 기반) 용 파이썬 패키지를 만들려고하는데 알려진 디렉토리에 일부 파일을 설치하고 싶습니다.플라스크 애플리케이션을 정적 파일로 올바르게 패키징하는 방법

예를 들어 플라스크는 통합 된 서버 (붙여 넣기 기반)를 실행할 때 현재 패키지 내에 templatesstatic 디렉토리를 찾습니다. 그러나 제작시에는 virtualenv/share/package-name/{static,templates}과 같은보다 구체적인 장소에 설치된 디렉토리를 선호합니다. 그렇지 않으면 lib/python-2.x/... 아래 어딘가에있을 것으로 보이는데 이는 적절하지 않습니다.

setup.pydata_files 매개 변수를 사용하여 파일을 설치하려고했으나 전체 나무 (error: can't copy 'xxx': doesn't exist or not a regular file)에 유용하지 않은 것으로 보입니다.

이 상황에서 적절한 해결책은 무엇입니까?

+0

이렇게하면 Flask 앱을 ​​패키징하는 데 많은 도움이되었습니다. http://flask.pocoo.org/docs/patterns/distribute/#basic-setup-script –

+0

본 적이 있습니다. 불행히도 그들은 단지 데이터 파일과 함께 패키지를 복사합니다. 나는 지금하고있다. 그러나 나는 정말로 멈추고 싶다. 나는 정말로/home/xxx_webapp/venv/lib/python2.7/site-packages/xxx-1.0dev-py2.7.egg/xxx/static /'에서 나의 웹 서버를 가리키는 것을 좋아하지 않는다. 차라리'/ home/xxx_webapp/venv/share/xxx/static /'과 같은 것을 사용하고 싶습니다. – viraptor

+0

기능 플라스크가 제공하는 것 이외의 다른 것으로 정적 파일을 제공하려고하는 이유는 무엇입니까? –

답변

3

가상 env 및 정적 파일을 기본 패키지 (.deb 또는 .rpm)로 패키징 한 다음 원하는 위치에 배치 할 수 있습니다. 이 here에 대한 블로그 게시물을 작성했습니다. 그것은 fpm라는 편리한 작은 루비 보석을 사용하고 내 파이썬 패키지에서 내 정적 파일을 분리해서 해달라고하지만 당신은

fpm -s dir -t deb -n food-truck -v 0.1 -d "python,python-dev,postgresql" /home/ubuntu/food_truck-build/=/home/ubuntu/foodtruck.com <path to static files>=<destination of static files> 

당신이 사용할 수 있도록처럼 FPM 명령의 끝에 다른 경로 매핑을 추가 할 수있을 것입니다 fpm을 사용하여 nginx 설정과 같은 다른 설정 파일을 지정할 수도 있습니다. 그러나 그것은 당신에게 달려 있으며, 배치가 조금 덜 유연하다는 것을 의미 할 수도 있습니다.

희망 하시겠습니까?

-1

파이썬의 패키징 유틸리티는이를위한 것이 아닙니다. 정적 파일을 nginx '또는 Apache의 사이트 루트에 복사하는 것은 배포 스크립트의 작업이며 Fabric을 사용하여 작성할 수 있습니다.

관련 문제