用于将Flask程序与py2app捆绑在一起的Setup.py文件

时间:2017-02-15 20:01:49

标签: python flask py2app

在Flask程序中使用py2app时,我无法找到任何文档。我应该如何设置setup.py文件?

Here's the dependencies I'm working with

1 个答案:

答案 0 :(得分:1)

你需要做(至少)两件事来通过py2app制作带烧瓶的macOS应用程序:

  • 正确配置setup.py
  • 重新配置您的__init__.py

首次使用setup.py的正版packages构建应用后,如果resources列表正确,则无法提供静态内容和模板(直到您在setup.py中配置__init__.py列表并重新配置应用的setup.py)。您必须将模板文件夹和静态文件夹设置为__init__.py$ ./dist/myapp.app/Contents/MacOS/myapp都可以使用的位置。

但是,在你太兴奋之前,你应该意识到你的新应用会遇到(重大)新问题:首先,应用程序没有图标,没有菜单存在,也没有办法给你反馈。你将需要强行退出"强制退出"退出它。通过终端运行可能更有用:

../../templates

但这是问题:您只是用绝对路径硬编码模板的路径。如果您移动应用程序,它将失去查找其数据的能力:

jinja2.exceptions.TemplateNotFound

如果你稍微蠢蠢欲动,那么将模板路径设置为python36.zip之类的东西可能会起作用。它没有赢。 py2app及其魔法将在您需要目录的烧瓶路径中包含一个文件:类似setup.py

您可能最终希望从您的应用中获得更多。但这绝对是一个开始:编译。如你所见,我或多或少地停在这里。我并不急于让我的脚本成为一个应用程序,它看起来像py2app和烧瓶真的不想很好地一起玩。可能有一种方法可以获得编译和真正可移植的东西,但我不是那个为你回答这个问题的人。祝你好运!

<小时/> 示例""" 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')

 string[] Paths = Directory.GetFiles(path,"*.txt");
 string[] stripchars1={"<","?","."};
 string[] chars2={"s","w","n"};

        foreach (string file in Paths)
        {
            TextReader objstream = new StreamReader(file);


            foreach (string character in stripchars1)
            {

                file.Replace(character, " ");

            }

          foreach (string character in chars2)
            {

                file.Replace(character, "h");

            }

        }