我正在编写一个自定义的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 :(得分:2)
handlers .py
的文件名中有一个空格,因此python找不到模块名handlers
。显然,最简单的修复方法是更正文件名,但对于任何实际需要文件名空间的人来说,import name with spaces
是语法错误,因此导入此类名称的唯一方法是使用__import__
。但这确实是一个非常糟糕的主意。