【问题标题】:python - FAB custom add-on create and installpython - FAB 自定义插件创建和安装
【发布时间】:2018-06-07 19:43:28
【问题描述】:

我正在尝试构建自己的自定义插件,以便以通用方式处理我的应用程序外部的 OAuth 登录。

我已经阅读了关于实现 OAuth 的 the documentation,以及关于创建附加组件的 the documentation。如果我将代码破解到应用程序中(没有附加组件),我的代码就可以工作,但我不想要这个。我希望它可以简单地包含代码并在我的 config.py 中设置一个变量来使用它。这就是我尝试附加组件的原因。

我将我在应用程序中工作的代码移到了插件中。我使用 fabmanager 为我生成骨架,然后修复了我的代码所在的 model.py 文件和配置文件。然后我根据文档在我的主应用程序的 config.py 文件中添加了以下行,以告诉它使用我的插件。

ADDON_MANAGERS = ['fab_addon_x.manager.X']

但这不起作用。我收到“ModuleNotFoundError”。

File "/usr/local/lib/python3.6/site-packages/flask_appbuilder/base.py", line 30, in dynamic_class_import
  package = __import__(module_path)
ModuleNotFoundError: No module named 'fab_addon_x'

我已将附加代码都放在与主项目相同的级别:

/myapp/
/fab_addon_x/

在主项目内部:

/myapp/
/myapp/fab_addon_x/

这些都不起作用。

完整的文件夹结构

/usr/local/lib/python3.6/site-packages/myapp/
  - __init__.py
  - __pycache__
  - bin
  - cache_util.py
  - cli.py
  - config.py
  - connectors
  - data
  - dataframe.py
  - db_engine_specs.py
  - db_engines
  - dict_import_export_util.py
  - extract_table_names.py
  - forms.py
  - import_util.py
  - jinja_context.py
  - legacy.py
  - migrations
  - models
  - security.py
  - sql_lab.py
  - sql_parse.py
  - static
  - stats_logger.py
  - templates
  - translations
  - utils.py
  - views
  - viz.py

我已将插件文件夹放置在这一层和上一层。插件文件夹结构:

fab_addon_x
  - README.rst
  - config.py
  - fab_addon_x
      - __init__.py
      - manager.py
      - models.py
      - templates
      - translations
      - version.py
      - views.py
  - run.py
  - setup.py

是否有特定的方法来注册我的插件?还是这是一个我似乎无法弄清楚的直截了当的参考问题?

编辑 1

将“ADDON_MANAGERS = ['fab_addon_first.manager.FirstAddOnManager']”更改为现在的样子。

编辑 2

添加文件夹结构

【问题讨论】:

  • 嗨,您的意思是ADDON_MANAGERS = ['fab_addon_x.manager.FirstAddOnManager']?如果您仍然遇到此问题,您可以分享您的文件夹结构。到目前为止,看起来你应该有 fab_addon_x 而不是 fab_addon_first
  • 嗨@nevi_me,我从文档页面复制了该行,而不是我自己的文件。它更接近于复制。很抱歉造成混乱,我会编辑并更正它。还将添加文件夹结构。

标签: python flask-appbuilder


【解决方案1】:

所以我在这里找到了自己的问题。文档在任何地方都没有提到这一点,但是如果您不将加载项上传到注册表,而只是将文件复制到目录中,那么您首先必须安装它。对于那些熟悉 python 的人来说,这可能听起来不言自明,但我不是,所以它不适合我。

下面的命令将安装它,你应该很高兴:

python setup.py install

【讨论】:

    猜你喜欢
    • 2018-11-20
    • 1970-01-01
    • 2012-12-08
    • 1970-01-01
    • 2020-12-26
    • 1970-01-01
    • 2020-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多