- Python 2.7.10
- В virtualenv
- Включить
from __future__ import absolute_importв каждом модуле
Дерево каталогов выглядит следующим образом:
Project/
prjt/
__init__.py
pkg1/
__init__.py
module1.py
tests/
__init__.py
test_module1.py
pkg2/
__init__.py
module2.py
tests/
__init__.py
test_module2.py
pkg3/
__init__.py
module3.py
tests/
__init__.py
test_module3.py
data/
log/
Я попытался использовать функцию compute() pkg2/module2.py в pkg1/module1.py, написав как:
# In module1.py
import sys
sys.path.append('/path/to/Project/prjt')
from prjt.pkg2.module2 import compute
Но когда я запустил python module1.py, интерпретатор поднял значение ImportError, которое No module named prjt.pkg2.module2.
- Каков правильный способ "абсолютного импорта"? Должен ли я добавить путь к
Projectвsys.path? - Как я могу запустить
test_module1.pyв интерактивном интерпретаторе? Подpython prjt/pkg1/tests/test_module1.pyилиpython -m prjt/pkg1/tests/test_module1.py?