Django:无法导入名称迁移

时间:2017-01-12 11:26:21

标签: python django django-1.4

我刚刚发布了here的问题。我看到一个类似问题的答案,说卸载和安装requirements.txt会有所帮助,因为问题的根源是一个糟糕的依赖链。

所以我这样做了,现在,当然,我遇到了一个新问题。

运行迁移时,我收到以下错误:

  File "C:\Python27\lib\site-packages\genericm2m\migrations\0001_initial.py", line 5, in <module>
    from django.db import migrations, models
ImportError: cannot import name migrations

根据另一个答案,这是因为我使用的是迁移模块,我的Django版本(1.4)尚不支持。

似乎django-generic-m2m模块(版本0.3.1)正在使用迁移。我现在不明白为什么会出现这个问题,因为我一直使用相同的requirements.txt文件而且我从来没有遇到过这个问题。

我曾经在使用迁移时遇到类似的依赖关系问题,而我的Django无法处理它们。但是这些deps也有一个south_migrations文件夹,所以只需将其重命名为migrations并删除实际的migrations文件夹即可。但是,我在south_migrations安装目录中看不到任何generic2m2目录。

以前是否有人遇到此问题?

1 个答案:

答案 0 :(得分:2)

该应用程序没有南迁移,据我所知,它从来没有过。它可能过去依赖于&lt; syncdb&#39;创建数据库表。

较新的Django没有syncdb,因此添加了创建表的迁移。

如果您习惯于重命名迁移目录,那么您可能只是删除迁移/目录,但您应该真正升级到支持的版本。

此外,您将old_migrations重命名为迁移的旧修复程序并非预期用途:如果您使用Django-South 1.0(django-south的最后一个版本),它将检测何时存在south_migrations目录并且使用它而不是迁移目录。

所以你也应该将South更新为1.0,然后添加一个空的south_migrations /目录也可以工作(我不知道)。