Нет модуля с именем внутри virtualenv

Я использую Python virtualenv, и у меня проблема с модулем (установленным внутри virtualenv).

Прежде всего, я активирую virtualenv:

source path_to_virtualenv/bin/activate

Virtualenv корректно активирован (его имя появляется в оболочке). Внутри этого virtualenv я установил мининет (симулятор сети): я уверен, что он установлен правильно (он указан командой pip list).

Однако, когда я пытаюсь запустить свое приложение, я получаю следующую ошибку в модуле API Mininet:

из mininet.net import Mininet ImportError: Нет модуля с именем net

Как это возможно? Используя IDE, он правильно определяет все модули Mininet (в том же самом virtualenv); у кого-нибудь есть идеи?

Спасибо


person Gabriele    schedule 21.07.2015    source источник


Ответы (1)


Убедитесь, что ваш проект находится в том же каталоге, что и ваша виртуальная среда.

Если не запустите свой виртуальный env. в командной строке, а затем перейдите к проекту.

надеюсь, что немного поможет

person Kyle Andersen    schedule 21.07.2015
comment
Спасибо за ваш ответ. Project и virtualenv не находятся в одном каталоге; Я напрямую активировал virtualenv внутри папки проекта; Я предполагаю, что virtualenv активирован правильно, потому что при выполнении команды which python я получаю /opt/sdn/mininet/2.1.0/bin/python, который находится внутри папки virtualenv... еще раз спасибо. - person Gabriele; 21.07.2015
comment
Более того, если я открою интерпретатор python внутри вируталенва и попытаюсь импортировать этот модуль, у меня не будет ошибок: (sdn)~$ python >>>from mininet.net import Mininet >>> Совершенно непонятно, что происходит... - person Gabriele; 21.07.2015
comment
это интересно. то есть у вас нет проблем изнутри интерпретатора? - person Kyle Andersen; 21.07.2015
comment
Точно. Эта ошибка не возникает внутри интерпретатора. - person Gabriele; 21.07.2015
comment
Хорошо, я решил свою проблему. Это было тупо из-за того, что я назвал файл, в который я импортировал mininet.net.* так же, как и модуль mininet, а именно mininet.py в моем приложении. Чтение документации по Python о модулях (ссылка ) Я понял, что приложение ищет mininet.net внутри моего модуля mininet (mininet.py), а не в модуле mininet/net.py. Я просто переименовал свой файл mininet.py и решил проблему. - person Gabriele; 22.07.2015