【问题标题】:Notebook fails to import module in same folder (Python)笔记本无法在同一文件夹中导入模块(Python)
【发布时间】:2017-05-15 10:39:12
【问题描述】:

在我的笔记本分析中,我想使用一些用不同脚本(但在同一个文件夹中)编写的函数。它看起来像这样:

main folder:
     - subfolder
         - __init__.py
         - my_script.py
         - my_notebook.ipynb

当我想在my_notebook 的单元格中导入my_script 时,我总是收到No module named my_script 错误。即使文件在同一个文件夹中,我也不明白为什么会发生这种情况。我应该如何导入 my_script ? IDE 没有抛出错误,我尝试了多种方法来导入它,但没有取得多大成功。

【问题讨论】:

  • 如何(实际行)以及从哪里(当前工作目录)导入?什么是回溯?
  • @KlausD。我尝试的实际线路是import my_scriptfrom subfolder import my_script。如果我这样做os.getcwd(),我会在 main_folder 上方获得两个文件夹作为工作目录。 (C:/User 中的标准 Pycharm 文件夹)。回溯非常简单: ImportErrorTraceback (最近一次调用最后一次) in () ----> 1 import data_prep ImportError: No module named data_prep
  • 工作目录是这里的问题。它通常是从中导入的基础之一。如果是 main folder import subfolderfrom subfolder import my_script 就可以了。你能从main folder运行脚本吗?
  • @KlausD。我从main_folder 的新脚本中尝试了您的建议。执行from mainfolder import subfolder 效果很好,但是当我执行from subfolder import my_script 时,它会在此行抛出ImportError 声明No module named subfolder
  • 那你还差一级。但是您可以在导入后使用subfolder.myscript 或使用from mainfolder.subfolder import myscript

标签: python import ipython


【解决方案1】:

这就是笔记本的工作原理,你不能那样做。据我所知,您只能从笔记本中的全局 PYTHONPATH 导入。

我找到的最简单的解决方案,也是我经常使用的。

import sys
sys.path.append('.')

那你应该可以import my_script

【讨论】:

  • 这对我不起作用。我应该在句号所在的地方替换一些东西吗?
猜你喜欢
  • 2018-07-29
  • 2016-03-01
  • 1970-01-01
  • 2021-02-02
  • 2021-02-10
  • 2020-11-22
  • 1970-01-01
  • 2020-12-01
  • 2022-11-07
相关资源
最近更新 更多