尝试跨同一主文件夹下的子文件夹导入文件时出错

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

我是新来的,希望得到一些帮助。

最近,我一直在使用 Jupyter Notebook 进行一些学习,测试一下我从不同文件夹中制作的功能。

原来结构如下:

/Main Folder

   / Library(containinng function)
   Notebook

在这个结构中我可以做

     from Library."file" import "function" 

始终有效

但是,当我开始将所有笔记本整理在这样的文件夹中时

/Main Folder
    /Library
       some.py
    /Notebook
       some.ipynb

同样的

import
不起作用并返回错误
 Module not found: Library

所以我使用副驾驶寻求帮助,它给了我这个片段

import sys

# Get the path to the 'library' folder
library_path = os.path.abspath(os.path.join(os.getcwd(), '..', 'library'))

# Append the 'library' folder to sys.path
if library_path not in sys.path:
    sys.path.append(library_path)

现在,当我有了这个时,如果我使用与前面提到的相同的

import
,它仍然无法工作,但是如果我使用
from "file" import "function"
,它就可以正常工作,我说好吧,不用担心。

所有这些都在 Vs 代码中。然而,在 Pycharm 上,我不需要执行任何操作,当我使用适用于 VsCode 的修复程序时,Pycharm 失败了。所以我认为当代码单元在笔记本中运行时,到达路径的方式肯定有问题

但是,在普通的 python 文件上,我可以简单地执行

sys.path.append(os.path.abspath".")
,无论子文件夹如何,我都可以毫无错误地访问代码。

如有任何帮助,我们将不胜感激。谢谢

python visual-studio-code jupyter-notebook pycharm importerror
1个回答
0
投票

这可能是路径的原因。你可以尝试使用绝对路径导入,就像这样

from Main_Folder.Library.some import function
。另外,当您使用
os.path.abspath
时,请确保您
sys.path
是正确的路径。

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