Если вы используете Conda, вы можете использовать
сь головой о стену с некоторыми основными импорт Python. Я максимально упростил проблему, надеясь, что смогу расширить ее в более широком масштабе, если пойму, как это работает
Здесь дилемма -run.py
изнутри субмодуляp1
работает, но НЕ когда это на верхнем уровне. Почему?
(версия Python 3.6.3)
Структура:/sandbox
__init__.py
/p1
__init__.py
file1.py
run.py
run.py
/sandbox/p1/__init__.py
__all__ = ["file1", "file2"]
/sandbox/p1/file1.py
from file2 import B
class A(object):
pass
/sandbox/p1/file2.py
class B(object):
pass
/sandbox/p1/run.py
from file1 import A
a = A()
/sandbox/run.py
from p1 import file1
a = file1.A()
Выполнение:
python p1/run.py
(работает отлично)python run.py
Traceback (последний вызов был последним): файл "run.py", строка 2, из файла p1 import file1 Файл "... / sandbox / p1 / file1.py", строка 1, из файла file2 import B ModuleNotFoundError: Нет модуля с именем 'file2'