Импорт модуля из пакета Python - PullRequest
0 голосов
/ 13 октября 2018

У меня есть пакет в следующей структуре

Main_file 
     __init__.py
     main.py
     sub_folder
          __init.py
          a.py
          b.py

b.py содержат

def print_value():
    print("hello")

a.py содержат

import b
b.print_value()

в main.py

from sub_folder import a

при запуске main.py я получил следующую ошибку

No module named 'b'

Ответы [ 2 ]

0 голосов
/ 13 октября 2018

Вы также можете включить sub_folder в системный путь с помощью

import sys
sys.path.append(<path to sub_folder>)

Примечание: как отмечено в комментариях ниже, это может создать проблемы из-за двойной загрузки.Это работает для сценариев и не является правильным методом для использования при написании пакетов.

0 голосов
/ 13 октября 2018

Поскольку sub_folder отсутствует в вашем PYTHONPATH, вам необходимо использовать относительный импорт из a.py:

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