Если вы используете 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'

Ответы на вопрос(2)

Ваш ответ на вопрос