从子文件夹中的脚本导入功能

时间:2019-06-03 09:05:15

标签: python import spyder subdirectory

我知道manymanymanymany次被问过类似的问题。

我仔细阅读了它们,并尝试了许多解决方案,但显然我找不到使它适合我的方法。所以我相信这个问题不会重复。

我具有以下结构:

+ C:\etc.\etc.\maindir   <---Root Directory
|     mymainfile.py
|     __init__.py        <---this is empty
+     \AuxFun            <--- Subfolder
|         __init__.py    <---this contains: "from . import *"
|         myauxfun1.py
|         myauxfun3.py

现在,在我的主要(mymainfile.py)内部,我有:

from AuxFun.myauxfun1 import AuxFun1
import AuxFun.myauxfun3 as AuxFun3

每个myauxfun都包含一个函数:

def fun()
...
return output

该脚本在带有Python 3.7(和IPython 6.5)的jupyter Notebook 5.6.0上完美运行

但是在Spyder 3.3.1和Python 3.7上不起作用

,并且在尝试导入时,控制台返回:

ModuleNotFoundError: No module named 'AuxFun'

最初,我尝试不包含任何__init__.py文件,并且在子文件夹中完全空白的__init__.py

我还尝试了以下方法:

from AuxiliaryFunctions import *
from .AuxFun.myauxfun1 import AuxFun1
import KR.AuxFun.myauxfun2 as AuxFun2

分别返回:

ModuleNotFoundError: No module named 'AuxiliaryFunctions'
ModuleNotFoundError: No module named '__main__.AuxiliaryFunctions'; '__main__' is not a package
ModuleNotFoundError: No module named 'KR'

有趣的是(对我来说)自动完成功能可以识别文件夹和文件。
即,如果我键入:“ . ⇥Tab ”,则会显示AuxFun子文件夹。
同样,键入“ .AuxFun. ⇥Tab ”将显示子文件夹中的所有auxfun脚本。

0 个答案:

没有答案