2009-12-07 7 views
8

우분투 리눅스 호스트에서 편안하게 (test :) 실행하는 장고 응용 프로그램을 만들고 있습니다. 소스 코드없이 앱을 패키징하고 다른 프로덕션 시스템에 배포하고 싶습니다. 이상적으로는 python/django 코드를 실행하는 CherryPy 서버를 시작하는 ./runapp 명령으로 실행할 수 있습니다. 된 .pyc 파일 만 건물을 배포하고 대상 시스템의 모든 요구 사항을 설치휴대용 Django 응용 프로그램 만들기 - 도움 필요

  1. :

    나는 몇이 일을하는 방법을 발견했습니다.

  2. 많은 도구 중 하나를 사용하여 Python 응용 프로그램을 배포 가능한 패키지로 패키지화합니다.

저는 실제로 nr.2 옵션을 노리고 있습니다. 장고 앱을 포함하고 싶습니다. 추가로 설치하거나 구성 할 필요없이 배포 할 수 있습니다. interwebs를 검색하는 것은 대답보다 더 많은 질문을했고 Django 패킹은 아무도 모르는 아무도 모르는 이상한 예술이라는 매우 신맛을주었습니다. :)

동결 (실패), Cx_freeze (쉬운 설치 버전은 실패, 저장소 버전은 작동하지만 응용 프로그램 출력은 실패 함) 및 작동하지 않을 dbuilder.py의 붉은 색 인쇄를 시도했습니다. 정말로 - 나는 추측한다). 내가 올바르게 이해한다면, 대부분의 문제는 장고가 모듈을 가져 오는 방식으로 발생하지만, 어떻게 해결해야할지 모른다.

독립 실행 형 장고 응용 프로그램의 포장/배포와 관련하여 누구나 온라인이나 좋은 자료를 제공 할 수 있다면 행복 할 것입니다.

+1

"소스 코드없이"

여기 VIRTUALENV에 대한 몇 가지 정보와 블로그 게시물뿐 아니라 도구를 알 수있는 좋은 다른 몇 가지에 대한 논의는있어? –

+0

외부로 앱을 보내야하며 코드를 쉽게 읽을 수 없도록하고 싶습니다. 파이썬 코드 디 컴파일은 매우 어렵지는 않지만 소스 파일을 읽고 수정하는 것보다 어렵다는 것을 이해합니다. – stricjux

+0

고객에게 판매하려면 추측 할 수 있습니다. – wisty

답변

0

--noreload 옵션은 Django가 어떤 모듈이 변경되었는지 자동 감지하는 것을 멈 춥니 다. 그게 고칠 수있을 지 모르겠지만, 그렇지 않을 수도 있습니다.

다른 옵션 (그리고 이상적이지는 않습니다)은 일반 텍스트 코드에서 호출 할 dll로 패키지화하여 핵심 기능 중 일부를 모호하게 만드는 것입니다.

+0

내 코드를 가리는 것이 목표는 아니지만 아이디어에 감사드립니다. --noreload 옵션으로도 문제가 해결되지 않습니다 (cx_freezed 버전을 실행할 수 없습니다 - 출력 참조 : http://dpaste.com/129019/) – stricjux

+0

--noreload는 Django가 빌드 할 때만 옵션입니다 'runserver'웹 서버에서 실행되며 PyCherry 또는 다른 웹 서버에는 적용되지 않습니다. –

7

배포판을 setuptools (표준 파이썬 배포판 메커니즘 distutils을 향상시키는 도구)에 기반 할 것을 제안합니다.

setuptools를 사용하면 응용 프로그램이 포함 된 Python egg를 만들 수 있습니다. 달걀의 메타 데이터에는 easy_install (Django + 사용하는 타사 모듈/패키지를 포함 할 수 있음)으로 자동으로 설치되는 종속성 목록이 포함될 수 있습니다.

setuptools/distutils 배포판에는 /usr/bin에 설치할 스크립트가 포함될 수 있으므로 runapp 스크립트를 포함 할 수 있습니다.

virtualenv에 익숙하지 않은 사용자라면을 잘 살펴 보시기 바랍니다. 그것은 고립 된 파이썬 환경을 만드는 방법이며, 배포판을 테스트하는 데 매우 유용합니다. 왜 - Tools of the Modern Python Hacker: Virtualenv, Fabric and Pip

+0

도구에 대한 링크가 손상된 것 같습니다. 대체 소스가 있습니까? – keppla