我是新来的,希望得到一些帮助。
最近,我一直在使用 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".")
,无论子文件夹如何,我都可以毫无错误地访问代码。
如有任何帮助,我们将不胜感激。谢谢
这可能是路径的原因。你可以尝试使用绝对路径导入,就像这样
from Main_Folder.Library.some import function
。另外,当您使用 os.path.abspath
时,请确保您 sys.path
是正确的路径。