当前位置: 首页 > 知识库问答 >
问题:

在 Jupyter 笔记本中导入期间找不到模块

齐磊
2023-03-14

我有以下包(和工作目录):

WorkingDirectory--
                 |--MyPackage--
                 |            |--__init__.py
                 |            |--module1.py
                 |            |--module2.py
                 |
                 |--notebook.ipynb

__init__. py我有:

import module1
import module2

如果我尝试将MyPackage导入我的笔记本:

import MyPackage as mp 

我将获取< code>ModuleNotFoundError:没有名为“module1”的模块。但是,如果我在笔记本之外执行脚本,导入就可以正常工作:如果我在同一个目录中创建< code>test.py并在笔记本中执行相同的操作,导入就可以正常工作。如果我在< code>__init__中使用完全限定名,它将在笔记本内部工作。py (< code > import my package . module 1 )。

不同导入行为的原因是什么?

我已经确认笔记本的工作目录是< code>WorkingDirectory。

-更新-

确切的错误是:

C:\Users\Me\Documents\Working Directory\MyPackage\__init__.py in <module>()
---> 17 import module1

ModuleNotFoundError: No module named 'module1'

我的问题与可能的重复问题不同:

>

  • 笔记本能够找到包,但无法加载模块。这是通过用<code>MyPackage替换<code>module1</code>得出的。module1运行良好,这表明它可能不是与PATH相关的问题。

    我进入WorkingDirectory并在那里启动了服务器。工作目录应该是包含我的包的文件夹。

  • 共有3个答案

    呼延钱明
    2023-03-14

    如果你面对的模块在jupyter环境中找不到,你必须把它安装在jupyter环境中,而不是安装在命令提示符下

    通过jupyter上的这个命令(对于windows)

    之后,您可以轻松导入和使用它。每当你想告诉 jupyter 这是系统命令时,你应该在你的命令之前加上 (!)。

    伯庆
    2023-03-14

    理解了这两个功能,你的问题就解决了。

    #list the current work dir
    os.getcwd()
    #change the current work dir
    os.chdir()
    

    更改路径,并导入模块,玩得开心。有时它不起作用。试试这个

    import sys
    # sys.path is a list of absolute path strings
    sys.path.append('/path/to/application/app/folder')
    
    import file
    

    -, -

    越嘉树
    2023-03-14

    我很确定这个问题是相关的,那里的答案会帮助你:https://stackoverflow.com/a/15622021/7458681

    tl;dr笔记本服务器的cwd始终是启动服务器的基本路径,无论运行的是<code>导入操作系统。getcwd()表示。使用导入sys sys.path.append(“/path/to/your/module/folder”)

    在修改sys之前,我用一些与您指定的结构相同的虚拟模块运行了它。path</code>它不会运行,之后会

     类似资料:
    • 我想将一些通用功能外包给一个模块中的多个笔记本电脑(也用于测试目的)。当前目录结构如下所示 在中,有一个简单的函数 然而,当我想导入和使用在通过使用(我认为有意义的) 我得到一个。我做错了什么?我正在使用Python 3.9。

    • C:\users\user\appdata\local\programs\python\python37\lib\site-packages\scipy__init__.py在154#中,这使得“from scipy import fft”返回scipy.fft,而不是np.fft 155 del fft-->156 from。导入fft C:\users\user\appdata\local\p

    • 我已经安装了Keras和TensorFlow GPU,但当我尝试将这些库导入Jupiter笔记本时,出现了一个错误 下面是使用conda list的库,下面是jupyter显示给我的错误: ModuleNotFoundError Traceback(最近的调用最后)在---- ModuleNotFoundError:没有名为keras的模块 我在蟒蛇环境中尝试这个: pip3安装keras 要求已

    • 我使用“conda-forge”在我的环境中安装了openCV。 它在我的终端工作 我正在使用Python 3.8。2.它显示在我的蟒蛇列表和蟒蛇的环境包列表上。请帮忙。

    • 我有一些问题在python导入。我不太明白为什么会有错误。 我使用jupyter笔记本从目录笔记本。我需要导入函数位于 对于导入,我尝试使用 正如这里https://docs.python.org/3/reference/import.html(第5.7段)和python显示我一个错误试图相对导入超过顶级包。 包

    • 我一直试图在Jupyter笔记本上显示gif,但遇到了一些麻烦。我一直得到一个空白的图像文件。 我已经尝试使用这个GitHub存储库中的html。 而且 以上这些到目前为止都没有奏效。 谢谢