Flask 프로그램에서 py2app를 사용하는 데 필요한 문서를 찾을 수 없습니다. setup.py 파일은 어떻게 설정해야합니까?Flask 프로그램을 py2app로 번들로 묶기위한 Setup.py 파일
Here's the dependencies I'm working with
Flask 프로그램에서 py2app를 사용하는 데 필요한 문서를 찾을 수 없습니다. setup.py 파일은 어떻게 설정해야합니까?Flask 프로그램을 py2app로 번들로 묶기위한 Setup.py 파일
Here's the dependencies I'm working with
당신은 (적어도) py2app를 통해 플라스크와 맥 OS 응용 프로그램을 만드는 두 가지를 수행해야합니다
setup.py
제대로__init__.py
의 좋은 버전을 통해 앱을 처음으로 빌드 한 후에 공격 할 수있는 잡았다. 올바른 목록이 packages
인은 resources
의 목록을 setup.py
에 구성하고 해당 앱의 __init__.py
을 다시 구성 할 때까지 정적 콘텐츠 및 템플릿을 제공 할 수 없습니다. 템플릿 폴더와 정적 폴더는 setup.py
과 __init__.py
모두 사용할 수있는 위치로 설정해야합니다.
하지만 너무 흥분하기 전에 새로운 앱에 새로운 문제가 생겼음을 알아야합니다. 첫 번째로 애플리케이션에 아이콘이없고 메뉴가 없으며 사용자에게 피드백을 줄 수있는 방법이 없습니다. 종료하려면 강제 종료해야합니다.
$ ./dist/myapp.app/Contents/MacOS/myapp
그러나 여기 큰 문제이다 : 단자를 통해 실행 아마 더 유용 그냥 절대 경로와 템플릿의 경로를 하드 코딩. 당신이 응용 프로그램을 이동하는 경우, 그것은 데이터를 찾을 수있는 능력을 잃게됩니다
jinja2.exceptions.TemplateNotFound
을 당신이 ../../templates
처럼 뭔가 템플릿 경로를 설정하면 작동 할 가능성에 의해 유혹 될 것입니다 조금 찔러합니다. 그렇지 않습니다. py2app와 그 마법은 플라스크 경로에 파일이 포함될 것입니다 (예 : python36.zip
).
결국 앱을 더 많이 원할 것입니다. 그러나 이것은 확실히 시작입니다 : 컴파일 된. 보시다시피, 나는 여기서 더 많이 멈추었습니다. 필자는 필자의 스크립트가 앱이 되길 필사적으로 생각하지 않았으며 py2app처럼 보이고 플라스크는 함께 잘 돌아가고 싶지 않았습니다. 컴파일되고 진정으로 이식 가능한 것을 얻을 수있는 방법이 있을지 모르겠지만, 나는 그 비트에 대답 할 사람이 아닙니다. 행운을 빕니다!
setup.py
"""
This is a setup.py script generated by py2applet
Usage: python setup.py py2app
"""
APP = ['myapp.py']
DATA_FILES = []
OPTIONS = {
'packages': ['flask', 'werkzeug', 'config', 'jinja2'],
'resources': ['./server/templates', './server/static'],
}
setup(
app=APP,
data_files=DATA_FILES,
options={'py2app': OPTIONS},
setup_requires=['py2app'],
)
__init__.py
myapp = Flask(__name__,
template_folder='/path/to/dist/dir/dist/myapp.app/Contents/Resources/templates',
static_folder='/path/to/dist/dir/dist/myapp.app/Contents/Resources/static')
수정