Python + Django 导入错误:无法从Python2.5导入signals到Python2.7

0 投票
2 回答
4181 浏览
提问于 2025-04-16 05:13

我安装了django-registration。最近把我的Python版本从2.5升级到了2.7。

一切都正常,但当我尝试运行我的Django应用时,出现了下面的错误。

C:\django\pley>python manage.py runserver
Validating models...
Unhandled exception in thread started by <function inner_run at 0x02FA6830>
Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\django\core\management\commands\runserver.
py", line 48, in inner_run
    self.validate(display_num_errors=True)
  File "C:\Python27\lib\site-packages\django\core\management\base.py", line 249,
 in validate
    num_errors = get_validation_errors(s, app)
  File "C:\Python27\lib\site-packages\django\core\management\validation.py", lin
e 28, in get_validation_errors
    for (app_name, error) in get_app_errors().items():
  File "C:\Python27\lib\site-packages\django\db\models\loading.py", line 146, in
 get_app_errors
    self._populate()
  File "C:\Python27\lib\site-packages\django\db\models\loading.py", line 64, in
_populate
    self.load_app(app_name)
  File "C:\Python27\lib\site-packages\django\db\models\loading.py", line 78, in
load_app
    models = import_module('.models', app_name)
  File "C:\Python27\lib\site-packages\django\utils\importlib.py", line 35, in im
port_module
    __import__(name)
  File "C:\django\pley\..\pley\accounts\models.py", line 3, in <module>
    from registration import signals
ImportError: cannot import name signals

如果你需要更多细节,比如其他文件的代码,可以在这个问题下留言,我会更新的。

2 个回答

1

我觉得没问题。当你解压 django-registration 时,会得到两个文件夹,分别是 docregistration。在 registration 文件夹里,有一个叫 signals.py 的文件。这正是你的 Django 应用程序试图导入的文件。

你可以检查一下,看看是否在项目的 settings.py 文件中把 django-registration 加入了 INSTALLED_APPS。

0

好吧,我来自己回答这个问题。感谢来自#django freenode的bahamas。

首先,打开你的Python命令行。

>>> import registration
>>> print registration.__file__
/home/wenbert/.local/lib/python/registration/__init__.pyc

然后输入:

$ ls -la /home/wenbert/.local/lib/python/registration

我在目录里找不到signals.py这个文件。

所以,去下载这个tar.gz文件,链接是:https://bitbucket.org/ubernostrum/django-registration/src,然后重新安装。

总结一下:我安装的django-registration有问题(没有signals.py文件)。所以我从源代码下载并手动重新安装。

撰写回答