Извините, если этот вопрос кажется очень простым, я достаточно опытен в Java, но абсолютно не в Python, и то, как импорт работает в Python, все еще остается загадкой для меня.
Проблема в том, что из того, что я собрал из интернета, я чувствую, что сделал все, что нужно для моего скрипта, чтобы импортировать модуль в папку.
мой проект выглядит так
/omme
start.py
/foo
__init__.py #is empty
bar.py #has a class named BarClass
start.py имеет только это
from foo.bar import BarClass
b = BarClass()
когда я запускаю этот скрипт в IDE spyder, я получаю это
runfile('/home/nathan/Documents/workspace/omme/start.py', wdir='/home/nathan/Documents/workspace/omme')
Reloaded modules: foo.bar
Traceback (most recent call last):
File "<ipython-input-38-c3b9ba6593fb>", line 1, in <module>
runfile('/home/nathan/Documents/workspace/omme/start.py', wdir='/home/nathan/Documents/workspace/omme')
File "/home/nathan/.anaconda3/lib/python3.6/site-packages/spyder/utils/site/sitecustomize.py", line 705, in runfile
execfile(filename, namespace)
File "/home/nathan/.anaconda3/lib/python3.6/site-packages/spyder/utils/site/sitecustomize.py", line 102, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "/home/nathan/Documents/workspace/omme/start.py", line 1, in <module>
from foo.bar import BarClass
ImportError: cannot import name 'BarClass'
, а затем еще более странно, если я заменим foo.bar
на test.bar
, он выдаст исключение ModuleNotFoundException (я подозреваю, что некоторые идеальные махинации).
Что я делаю не так?
Спасибо за ваше время, искренне Натан.