【问题标题】:ImportError: cannot import name 'app' from 'app' (app.ipynb) in jupyter notebookImportError:无法从 jupyter notebook 中的“app”(app.ipynb)导入名称“app”
【发布时间】:2021-08-05 10:08:16
【问题描述】:

这是目录结构

▾ 1projet/
  ▾ apps/
      __init__.ipynb
      Statistics.ipynb
      SWEDEN.ipynb
      UAE.ipynb
app.ipynb
index.ipynb

我在index.ipynb写的代码是

import import_ipynb
from app import app
from app import server
from apps import UAE,SWEDEN,Statistics

这给了我这个错误

ImportError: cannot import name 'app' from 'app' (app.ipynb)

我在app.ipynb写的代码是:

import dash

app= dash.Dash(__name__, suppress_callback_exceptions=True,
                meta_tags=[{'name': 'viewport',
                            'content': 'width=device-width, initial-scale=1.0'}]
                )
server = app.server

而文件__init__.ipynb 为空。

【问题讨论】:

    标签: python python-3.x import jupyter-notebook importerror


    【解决方案1】:

    您正尝试从.ipynb 文件导入其他.ipynb 文件。 请注意,这与导入 python 模块 (.py) 不同。 Here 已经有一个你可能感兴趣的答案,已经提到所有笔记本都必须在同一个目录中才能成功导入。

    在您的情况下,您必须安装ipynb,然后使用以下行导入appserver

    from ipynb.fs.full.app import app
    from ipynb.fs.full.app import server
    

    为了成功导入模块UAESWEDENStatistics,您必须将.ipynb 文件放入与index.ipynb 相同的目录中,或者您必须将代码放入这些文件中进入.py 文件以支持绝对导入。在这种情况下,您必须将 __init__.py 文件添加到每个文件夹层次结构中。

    总而言之,您的文件夹结构有两个选项,第一个选项:

    ▾ 1projet/
      __init__.py
    ▾ apps/
          __init__.py
          Statistics.py
          SWEDEN.py
          UAE.py
    app.ipynb
    index.ipynb
    

    进口:

    from ipynb.fs.full.app import app
    from ipynb.fs.full.app import server
    from 1projet.apps import UAE, SWEDEN, Statistics
    

    第二个选项:

    app.ipynb
    index.ipynb
    Statistics.ipynb
    SWEDEN.ipynb
    UAE.ipynb
    

    进口:

    from ipynb.fs.full.app import app
    from ipynb.fs.full.app import server
    from ipynb.fs.full.Statistics import *
    from ipynb.fs.full.SWEDEN import *
    from ipynb.fs.full.UAE import *
    

    【讨论】:

    • 第一次导入错误已修复!谢谢你。只是为了澄清第一个选项,我是否必须将扩展名更改为 .py?对于第二个选项,我是否必须摆脱文件夹并将所有文件放在同一个文件夹中?
    • @wageeh 我不确定您是否可以简单地将扩展名从 .ipynb 更改为 .py。我认为简单地创建具有相同名称的 .py 文件并将所有代码从相应的 .ipynb 文件复制到 .py 文件中可能更容易。
    • @wageeh 对于第二个选项,是的,您应该摆脱所有文件夹并将所有文件放在同一个文件夹中
    • 我选择了第二个选项,我收到了这个错误ImportError: cannot import name 'Statistics' from 'ipynb.fs.full.app' (unknown location)
    • 对不起,我的回答有误。您必须使用 from ipynb.fs.full.Statistics import * 导入
    猜你喜欢
    • 2021-04-25
    • 2014-09-21
    • 1970-01-01
    • 2021-10-29
    • 2019-03-23
    • 2020-12-06
    • 1970-01-01
    • 2021-06-13
    • 1970-01-01
    相关资源
    最近更新 更多