Я знаю, что подобные вопросы задавались много , много , много , много раз.
Iвнимательно прочитайте их и перепробовали множество решений, но, видимо, я не могу найти способ заставить его работать на меня.Поэтому я считаю, что этот вопрос не является дубликатом.
У меня есть следующая структура:
+ 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
Сценарий отлично работает на ноутбуке jupyter 5.6.0 с Python 3.7 (и IPython 6.5)
Однако он не работает на 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 в подпапке.