2013-08-03 3 views
0

Я пишу пользовательский модуль Django, но, похоже, у меня что-то не так. Я не могу импортировать класс, который живет в определенном файле. Я получаю ошибкуНевозможно импортировать класс из пользовательского пакета django

ValueError: Unable to configure handler 'admins': Cannot resolve 'myPackage.handlers.MyHandlerClass': No module named handlers 

Это структура каталогов. Я считаю, что я могу импортировать представления и модели без проблем.

myPackage 
├── CHANGELOG.rst 
├── myPackage 
│   ├── handlers .py 
│   ├── __init__.py 
│   ├── __init__.pyc 
│   ├── migrations 
│   │   ├── 0001_initial.py 
│   │   ├── 0001_initial.pyc 
│   │   ├── __init__.py 
│   │   └── __init__.pyc 
│   ├── models.py 
│   ├── models.pyc 
│   ├── tests.py 
│   ├── views.py 
│   └── views.pyc 
├── myPackage.egg-info 
│   ├── dependency_links.txt 
│   ├── PKG-INFO 
│   ├── requires.txt 
│   ├── SOURCES.txt 
│   └── top_level.txt 
├── MANIFEST.in 
├── README.rst 
├── requirements.txt 
└── setup.py 
+0

Является ли пространство в 'handlers .py' опечаткой? Если нет, это может быть вашей проблемой. Как вы используете код? Я не вижу 'manage.py', поэтому я предполагаю, что вы импортируете из другого пакета. Является ли 'myPackage' в вашем' sys.path'? – aquavitae

+0

DAMN !!! В названии файла было пустое место! – Alex

+0

@aquavitae Вы можете добавить свой комментарий к нему, поскольку кажется, что нашли ошибку ... –

ответ

2

Существует пространство в имени файла handlers .py, так питон не может найти модуль имен handlers. Очевидно, самым простым решением является исправление имени файла, но для любого, кто действительно хочет пространство в имени файла, import name with spaces является синтаксической ошибкой, поэтому единственный способ импортировать такое имя - __import__. Но это действительно очень плохая идея.

Смежные вопросы