Я прочитал несколько десятков вопросов о ImportError
, но ни один из них не касается моей проблемы конкретно.Импорт работает в python, но не в django
I имеют следующую структуру:
.
├── apps
│ ├── accounts
│ ├── core
│ ├── apimanager
│ ├── utils
│ ├── modules
│ │ ├── companies
│ │ └── products
├── assets
│ ├── apps
│ └── libs
├── fabfile
│ └── env
├── project
└── templates
Все каталоги действительно имеют __init__.py
.
Запуск python
:
>>> from apps.modules import companies
>>> companies
<module 'apps.modules.companies' from 'apps/modules/companies/__init__.pyc'>
>>>
>>> from apps import modules
>>> modules
<module 'apps.modules' from 'apps/modules/__init__.pyc'>
>>>
>>> import apps
>>> apps
<module 'apps' from 'apps/__init__.pyc'>
Запуск python manage.py shell
:
Traceback (most recent call last):
File "./manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
...
File "../django/apps/accounts/models.py", line 8, in <module>
from apps.modules.companies.models import Company
ImportError: No module named modules.companies.models
Если питон интерпретатор может импортировать все пакеты/суб-пакеты, то Django должен быть в состоянии сделать то же самое.
Что мне не хватает?
Проверьте отличия в их 'sys.path' – RafaelC
@ RafaelCardoso, единственное отличие - это первый элемент; в 'python' первый элемент -' '' ', а в'./manage.py' - это корневой каталог проекта. – abstractpaper
Вы используете оба из одного каталога? спуститесь вниз, откуда управляется.py, и вызовите его с помощью оболочки ../manage.py. –