- 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
?