Jupyter notebook - 无法从其他文件夹导入 python 函数

ere*_*rez 6 python jupyter-notebook

我有一个 Jupyter 笔记本,我想使用计算机中其他文件夹中的本地 python 函数。当我导入这些函数时,我收到此错误:“ModuleNotFoundError: No module named 'xxxxxxxxxxxxx'

  • 我使用 anaconda 作为 python 解释器

tda*_*tda 8

您可以使用添加sys到本地模块/python 文件的路径。

import sys
sys.path.append("/path/to/file/")  # path contains python_file.py

import python_file
Run Code Online (Sandbox Code Playgroud)

如果您想要通过向 Anaconda 路径添加模块来获得更持久的解决方案,请参阅 cord-kaldemeyer /sf/answers/2590606441/ 的先前答案。为完整起见,复制以下内容:

我在 Anaconda 论坛中找到了我的问题的两个答案:

1.) 将模块放入site-packages,即目录$HOME/path/to/anaconda/lib/pythonX.X/site-packages,它总是在sys.path 上。这也应该通过创建符号链接来工作。

2.) 将 .pth 文件添加到 $HOME/path/to/anaconda/lib/pythonX.X/site-packages 目录中。这可以命名为任何名称(它必须以 .pth 结尾)。.pth 文件只是一个以换行符分隔的目录完整路径名列表,这些目录将在 Python 启动时添加到您的路径中。

两者都很简单,我选择了第二个选项,因为它更灵活。

*** 更新:

3.) 在您的包文件夹中创建一个 setup.py 并使用 pip install -e /path/to/package 安装它,从我的角度来看这是最干净的选项,因为您还可以使用 pip list 查看所有安装。

不管怎么说,还是要谢谢你!


Ctr*_*l S 2

如果您还没有这样做,请尝试在代码中使用函数的完整路径名。

from Folder1.Folder2.FileName import ModuleName

someVar = ModuleName(params)
Run Code Online (Sandbox Code Playgroud)

Folder1将是与主程序位于同一目录中的文件夹。另外,创建一个空文件,名为__init__.pyin 每个从中导入的文件夹。

  • 前一段时间还可以,现在不行了。Jupyter 可能会感到困惑,所以在这种情况下我必须重新启动工作簿 (2认同)