代码之家  ›  专栏  ›  技术社区  ›  FahdS

在运行Flask时禁用/存档特定的python文件以阻止其执行

  •  0
  • FahdS  · 技术社区  · 1 年前

    假设我的Flask应用程序的src目录中有多个python文件,比如

    src/
        file1.py
        file2.py
        file3.py
        file4.py
    

    我的应用程序使用了一些可选的机器学习模型。我已经为导入和运行这些ML模型的脚本划分了file4.py。例如

    #file.py script
    
    import some_ML_model
    
    model_init = some_Ml_model()
    
    '''functions that run the model'''
    

    现在我注意到file4.py大大降低了我的flask应用程序的速度,所以我决定取消file4.py。不过我不想删除它,以避免在将来需要时重写python脚本的痛苦。我只是想让flask应用程序在运行flask应用时不要运行file4.py。当我加载烧瓶应用程序时,有没有办法告诉烧瓶不要运行file4.py?或者我是否可以在烧瓶应用程序中的某个位置归档file4.py?比如什么是最佳实践?我有一种预感,我需要对.flaskenv进行更改,但非常感谢技术帮助。

    1 回复  |  直到 1 年前
        1
  •  1
  •   Rahmouni Rabii    1 年前

    你可以阻止烧瓶运行 file4.py 只需不在应用程序中导入即可。但是,如果你想保留 file4.py 在您的项目中,为了将来在没有Flask执行的情况下使用,您可以将其移动到不包含在Flask应用程序上下文中的其他目录。

    以下是一个结构化响应,您可以将其直接复制粘贴到Stack Overflow:


    如何排除特定文件在Flask应用程序中运行?

    我有一个Flask应用程序,其目录结构如下:

    src/
        file1.py
        file2.py
        file3.py
        file4.py
    

    我的应用程序使用一些可选的机器学习模型,这些模型是导入并在中运行的 file4.py 。这是的简化版本 file4.py :

    # file4.py
    
    import some_ML_model
    
    model_init = some_ML_model()
    
    # Functions that run the model
    

    我注意到了 file4.py 大大降低了我的Flask应用程序的速度。我不想删除它,因为我将来可能需要它。我只是想阻止Flask逃跑 file4.py 当我启动应用程序时。

    实现这一目标的最佳实践是什么?

    解决方案

    防止 file4.py 从运行开始,不要将其导入到Flask应用程序中。你也可以移动 file4.py 到另一个目录,以确保它不会被意外包含。以下是如何组织文件:

    src/
        file1.py
        file2.py
        file3.py
        optional_ml/
            file4.py
    

    通过移动 file4.py optional_ml/ 目录中,您确保它不会由Flask执行,除非您显式导入它。这样, file4.py 保留在项目中以供将来使用,但不会影响Flask应用程序的性能。

    然后,您可以在主Flask应用程序代码中更新导入以排除 file4.py .

    例如,在 app.py 或者无论您在哪里管理Flask应用程序初始化,请确保只导入必要的文件:

    # app.py
    
    from src import file1
    from src import file2
    from src import file3
    
    # Do not import file4 to prevent it from running
    # from src import file4  # This line should be commented out or removed
    
    if __name__ == '__main__':
        app.run()
    

    通过遵循这种方法,您可以 file4.py 在项目中,而不会无意中运行它,从而保持应用程序的性能。


    这将帮助您组织Flask应用程序并防止 file4.py 从没有

    推荐文章