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

问题描述 投票:1回答:1

我有一个非常简单明了的代码,可以在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笔记本,然后将代码复制到最终成为“生产”代码的地方。

python python-3.x pandas visual-studio-code jupyter-notebook
1个回答
0
投票

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.