【发布时间】: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_script和from subfolder import my_script。如果我这样做os.getcwd(),我会在 main_folder 上方获得两个文件夹作为工作目录。 (C:/User 中的标准 Pycharm 文件夹)。回溯非常简单: ImportErrorTraceback (最近一次调用最后一次)in () ----> 1 import data_prep ImportError: No module named data_prep -
工作目录是这里的问题。它通常是从中导入的基础之一。如果是
main folderimport subfolder和from 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。