无法在 vscode 中使用 jupyter 笔记本中的导入

E. *_*aep 7 python python-3.x pandas visual-studio-code jupyter-notebook

我有一个非常简单的代码,可以在 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)
Run Code Online (Sandbox Code Playgroud)

然而,将 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)
Run Code Online (Sandbox Code Playgroud)

当我尝试运行或调试单元时,我在第一行收到异常:

import academic_data_settings as local_settings...
ModuleNotFoundError: No module named 'academic_data_settings'
Run Code Online (Sandbox Code Playgroud)

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

Eme*_*Eme 16

我有类似的问题。我可以在 vscode 终端中导入 IPython 中的模块,但不能在 vscode 交互窗口(或 jupyter 笔记本)中导入。

更改.vscode/settings.json文件自

{
"python.pythonPath": "/MyPythonPath.../bin/python"
}
Run Code Online (Sandbox Code Playgroud)

{
"python.pythonPath": "/MyPythonPath.../bin/python"
"jupyter.notebookFileRoot": "${workspaceFolder}"
}
Run Code Online (Sandbox Code Playgroud)

为我解决了。

  • 这绝对应该标记为答案。谢谢你,你节省了我几个小时的搜索时间。 (2认同)

Ian*_*uff 2

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

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

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

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