我得到一个无情
$ 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
,在migrate
和schemamigration
没有显示列出的命令。
我仔细检查了我的settings.py
文件有下列出“南” INSTALLED_APPS
(我拉后并没有改变这个文件)。
我想pip uninstall south
,然后运行pip install -r requirements.txt
了,但我仍然得到同样的错误。
真的很感激任何帮助!
包成功导入是不够的,Django的管理命令。 Python可以从压缩鸡蛋导入包容易的,但Django的需要一个正常的未压缩文件。
建议最初简化您的问题:
- 管理命令必须存在的文件,在一个正常的目录
path..to..south/management/commands
(未压缩)。 - 尝试寻找并手动删除南部的老设备。 一个常见的问题是,一些包的一个版本已经通过的easy_install(压缩)安装或手动“蟒蛇setup.py安装”,但点子没有卸载它,并安装它第二次。
- 只使用绝对目录在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__)
这主要是由以下的1.7(DEV版)教程时,我们都得到通过PIP最后安装的稳定版本(1.6)引起的。
无论是按照1.6教程或按照说明安装Django的1.7版本的开发。
我首先要在这里解决了这个问题http://south.readthedocs.org/en/latest/installation.html并使用easy_install的南部。 然后我说“南”,我INSTALLED_APPS和它的工作。
我得到了同样的错误,但出于不同的原因。 我所做的:
$ python manage.py migrate my_app --settings=settings_dev.py
但与设置参数,你应该通过模块而不是文件名的名称。 所以它应该是
$ python manage.py migrate my_app --settings=settings_dev
当您运行这样的验证命令你得到一个体面的错误信息,但是当你运行一个命令南下,它会说的命令是未知的:/
在我的情况。 南已安装,但后来要求是为其他库的原因:
pip install -r requirements.txt
我不知道为什么manage.py没有抱怨他们。
我有这个,但它竟然在我的错误settings.py
它得到了露面,当我试图runserver
来代替。 修正了错误,并且命令回来了。 基本上没有任何的应用程序的管理命令都在那里,所以我的INSTALLED_APPS
必须被覆盖或从不写在首位。 在我的情况下,设置文件的导入正默默地失败。