как - python не видит модуль




ImportError: нет модуля с именем-Python (4)

Чтобы импорт модуля Python работал, на вашем пути должно быть «src», а не «gen_py / lib».

При обработке импорта, например import gen_py.lib , он ищет модуль gen_py , а затем ищет подмодуль lib .

Поскольку модуль gen_py не будет находиться в «../gen_py/lib» (он будет в «..»), добавленный вами путь ничего не поможет процессу импорта.

В зависимости от того, откуда вы его используете, попробуйте добавить относительный путь к папке «src». Возможно, это sys.path.append('..') . Возможно, вы также python main/MyServer.py запустить скрипт в папке src напрямую, используя относительные пути, такие как python main/MyServer.py

У меня есть приложение python со следующей структурой каталогов:

src
 |
 +---- main
 |
 +---- util
 |
 +---- gen_py
         |
         +---- lib

В основной части пакета у меня есть модуль python с именем MyServer.py, который имеет оператор импорта:

from gen_py.lib import MyService

Чтобы этот оператор работал, я разместил следующую строку в начале MyServer.py :

import sys
sys.path.append('../gen_py/lib')

Когда я запускаю MyServer.py в терминале, я получаю следующую ошибку:

ImportError: нет модуля с именем gen_py.lib

Что мне здесь не хватает?


from ..gen_py.lib import MyService

или

from main.gen_py.lib import MyService

Убедитесь, что у вас есть (по крайней мере пустой) __init__.py файл в каждом каталоге.


обязательно включите __init__.py , что заставляет Python знать, что эти каталоги содержат пакеты


Это если вы строите пакет, и вы обнаруживаете ошибку в импорте. Я усвоил это с трудом. Ответ заключается не в том, чтобы добавить пакет в путь python, либо сделать его программно (что, если ваш модуль будет установлен, а ваша команда добавит его снова?), Это плохо.

Правильная вещь: 1) использовать virtualenv pyvenv-3.4 или что-то подобное 2) Активировать режим разработки - $ python setup.py develop





import