在vscode中的Jupyter Notebook中无法使用导入

时间:2019-09-25 13:17:55

标签: 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)

但是,很难可视化熊猫数据框中的数据。

为了查看数据,我找到了以下有关如何直接从VSCode使用Jupyter笔记本的文章: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笔记本,然后将代码复制到最终成为“生产”代码的地方。

1 个答案:

答案 0 :(得分:0)

Jaep。我是此扩展程序的开发人员,我想基于此评论,我知道这里发生了什么:

  

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

VSCode python交互式功能使用的相对加载路径与jupyter不同。在VSCode中,相对路径是相对于您打开的文件夹/工作空间的,而不是相对于文件相对于jupyter而言。要解决此问题,您可以将路径更改为与打开的文件夹相对的“ academic_data_settings”,也可以在设置中将“笔记本文件根目录”设置为指向您希望此工作空间成为工作根目录的位置。如果您要对此笔记本文件的根目录使用当前文件位置,则有一个错误可以支持。

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