南:未知的命令“迁移”(South: Unknown command 'migrate

2019-06-28 02:56发布

我得到一个无情

$ python manage.py migrate
Unknown command: 'migrate'
Type 'manage.py help' for usage.

我从GitHub代码拉到一个新的计算机。 此代码进行测试,并正在努力在其他计算机上。 整个代码运行除了一个事实,我不能运行迁移罚款!

安装在我的虚拟环境,并跑了pip install -r requirements.txt 。 它安装了一切,包括南。 我可以通过运行检查

$ python manage.py shell
>>> import south
>>> south.__version__
'0.7.3'

然而,当我运行manage.py help ,在migrateschemamigration没有显示列出的命令。

我仔细检查了我的settings.py文件有下列出“南” INSTALLED_APPS (我拉后并没有改变这个文件)。

我想pip uninstall south ,然后运行pip install -r requirements.txt了,但我仍然得到同样的错误。

真的很感激任何帮助!

Answer 1:

包成功导入是不够的,Django的管理命令。 Python可以从压缩鸡蛋导入包容易的,但Django的需要一个正常的未压缩文件。

建议最初简化您的问题:

  1. 管理命令必须存在的文件,在一个正常的目录path..to..south/management/commands (未压缩)。
  2. 尝试寻找并手动删除南部的老设备。 一个常见的问题是,一些包的一个版本已经通过的easy_install(压缩)安装或手动“蟒蛇setup.py安装”,但点子没有卸载它,并安装它第二次。
  3. 只使用绝对目录在Python路径。 不要更改安装和无论是在环境或运行定制的Django的蟒蛇路径管理或settings.py如果可能的话。 一些manage.py或settings.py使用不同蟒路径比通过一个包intallers使用,例如添加的“” 或“..”之前其他目录。 你不应该有其他south目录...在你的项目。

建议1的Django的绝对要求。 另外两个是heplful即使我使用了多个版本,不知何故与Python和Django的等多个版本的测试我的应用程序

主要需求调研的实例:

$ python manage.py shell
>>> import os
>>> import south.management.commands.migrate
>>> assert os.path.isfile(south.management.commands.migrate.__file__)


Answer 2:

这主要是由以下的1.7(DEV版)教程时,我们都得到通过PIP最后安装的稳定版本(1.6)引起的。

无论是按照1.6教程或按照说明安装Django的1.7版本的开发。



Answer 3:

我首先要在这里解决了这个问题http://south.readthedocs.org/en/latest/installation.html并使用easy_install的南部。 然后我说“南”,我INSTALLED_APPS和它的工作。



Answer 4:

我得到了同样的错误,但出于不同的原因。 我所做的:

$ python manage.py migrate my_app --settings=settings_dev.py

但与设置参数,你应该通过模块而不是文件名的名称。 所以它应该是

$ python manage.py migrate my_app --settings=settings_dev

当您运行这样的验证命令你得到一个体面的错误信息,但是当你运行一个命令南下,它会说的命令是未知的:/



Answer 5:

在我的情况。 南已安装,但后来要求是为其他库的原因:

pip install -r requirements.txt

我不知道为什么manage.py没有抱怨他们。



Answer 6:

我有这个,但它竟然在我的错误settings.py它得到了露面,当我试图runserver来代替。 修正了错误,并且命令回来了。 基本上没有任何的应用程序的管理命令都在那里,所以我的INSTALLED_APPS必须被覆盖或从不写在首位。 在我的情况下,设置文件的导入正默默地失败。



文章来源: South: Unknown command 'migrate'