Импорт родного модуля в Python - PullRequest
1 голос
/ 29 февраля 2020

Я хочу импортировать одноуровневый модуль.

Я искал его и получил десятки решений. Но все это вообще не сработало.

Это пример структуры.

test/
  + __init__.py
  + A.py

  + test_B/
    + __init__.py
    + B.py

  + test_C/
    + __init__.py
    + C.py

Я пытался импортировать модуль B в модуль C.

# import test_B.B 
# => Error!

# import test.test_B.B 
# => Error!

# from test.test_B import B
# => Error!

# from ..test_B import B
# => Error!

# from test_B import B
# => Error!

# import sys
# sys.path.insert(0, "../test_B")
# import B
# import test_B.B
# => Error!

Как я могу это сделать?

1 Ответ

0 голосов
/ 01 марта 2020

Я нашел метод.

import sys
import os

sys.path.append(os.path.dirname(os.path.dirname(__file__))
from test_B import B

Этот метод работает хорошо.

import sys
from pathlib import Path

sys.path.append(Path(__file__).parent.parent)
from test_B import B

Этот метод не работает.

Я не знаю Разница между ними. И я не знаю, почему я должен это делать.

Может кто-нибудь объяснить, пожалуйста, подробности внутренней работы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...