【问题标题】:Fail to use imports in jupyter notebook in vscode无法在 vscode 的 jupyter notebook 中使用导入
【发布时间】:2020-01-25 16:52:34
【问题描述】:

我有一个非常简单的代码,可以在 Python 3.7 上顺利运行:

import academic_data_settings as local_settings
import pandas as pd
import glob
import os

def get_all_data():
    all_files = glob.glob(os.path.join(local_settings.ACADEMIC_DATA_SOURCE_PATH, "*.csv"))
    df_from_each_file = [pd.read_csv(f) for f in all_files]
    concatenated_df = pd.concat(df_from_each_file, ignore_index=True)
    return concatenated_df

if __name__ == "__main__":
    raw_data = get_all_data()
    print(raw_data)

但是,很难将 pandas 数据框中的数据可视化。

为了查看数据,我直接从VSCode中找到了以下关于如何使用Jupyter notebook的文章:https://devblogs.microsoft.com/python/data-science-with-python-in-visual-studio-code/

为了能够看到 Python 交互窗口,我需要将代码变成一个 jupyter 单元格:

#%%
import academic_data_settings as local_settings
import pandas as pd
import glob
import os

def get_all_data():
    all_files = glob.glob(os.path.join(local_settings.ACADEMIC_DATA_SOURCE_PATH, "*.csv"))
    df_from_each_file = [pd.read_csv(f) for f in all_files]
    concatenated_df = pd.concat(df_from_each_file, ignore_index=True)
    return concatenated_df

if __name__ == "__main__":
    raw_data = get_all_data()
    print(raw_data)

当我尝试运行或调试单元时,第一行出现异常:

import academic_data_settings as local_settings...
ModuleNotFoundError: No module named 'academic_data_settings'

我相信单元格评估只发送当前单元格的代码。那是对的吗? 有没有办法让导入正常工作? 我不希望最终编写 Jupyter 笔记本,然后将代码复制到最终成为“生产”代码的地方。

【问题讨论】:

  • 你的academic_data_settings 包在哪里?当你朗姆酒 vscode 时,这是用主代码定位的吗?
  • @Lamarus 它位于我运行的文件旁边

标签: python python-3.x pandas visual-studio-code jupyter-notebook


【解决方案1】:

杰普。我是这个扩展的开发者,我想我知道根据这个评论这里发生了什么:

@Lamarus 它位于我运行的文件旁边

VSCode python 交互功能使用的相对加载路径与 jupyter 略有不同。在 VSCode 中,相对路径是相对于您打开的文件夹/工作区的,而不是相对于文件的 jupyter。要解决此问题,您可以将 Academic_data_settings 的路径更改为相对于打开的文件夹,或者您可以将设置中的 Notebook File Root 设置为指向您希望此工作区成为工作根的位置。如果您想投票,我们有一个错误支持在此处使用笔记本文件根目录的当前文件位置。

https://github.com/microsoft/vscode-python/issues/4441

【讨论】:

    【解决方案2】:

    我遇到了类似的问题。我可以在 vscode 终端中导入 IPython 中的模块,但不能在 vscode 交互式窗口(或 jupyter notebook)中导入。

    .vscode/settings.json 文件从

    {
    "python.pythonPath": "/MyPythonPath.../bin/python"
    }
    

    {
    "python.pythonPath": "/MyPythonPath.../bin/python"
    "jupyter.notebookFileRoot": "${workspaceFolder}"
    }
    

    帮我解决了。

    【讨论】:

      猜你喜欢
      • 2021-07-08
      • 2021-02-08
      • 2020-07-13
      • 1970-01-01
      • 2019-08-18
      • 2020-11-06
      • 2018-07-28
      • 2019-08-10
      • 1970-01-01
      相关资源
      最近更新 更多