首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >South:未知命令'migrate‘

South:未知命令'migrate‘
EN

Stack Overflow用户
提问于 2012-09-10 13:57:06
回答 6查看 18.2K关注 0票数 10

我变得冷酷无情

代码语言:javascript
复制
$ python manage.py migrate
Unknown command: 'migrate'
Type 'manage.py help' for usage.

我把代码从github下载到一台新的电脑上。这段代码已经过测试,并且可以在其他计算机上运行。除了我不能运行迁移之外,整个代码运行得很好!

安装了虚拟环境并运行了pip install -r requirements.txt。它可以安装所有东西,包括South。我可以通过运行以下命令进行检查

代码语言:javascript
复制
$ python manage.py shell
>>> import south
>>> south.__version__
'0.7.3'

但是,当我运行manage.py help时,没有列出migrateschemamigration命令。

我仔细检查了我的settings.py文件是否在INSTALLED_APPS下列出了'south‘(在拉出之后我没有更改这个文件)。

我尝试了pip uninstall south,然后再次运行pip install -r requirements.txt,但仍然得到相同的错误。

真的很感谢大家的帮助!

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-09-10 17:03:15

对于Django管理命令,成功导入包是不够的。Python可以轻松地从压缩的鸡蛋导入包,但Django需要一个普通的未压缩文件。

最初简化你的问题的建议:

  1. 管理命令必须作为文件存在于普通目录path..to..south/management/commands (未压缩)中。
  2. 尝试手动查找并删除旧安装的south。一个常见的问题是,某个包的一个版本已经由easy_install (压缩)安装,或者通过"python setup.py install“手动安装,但是pip没有卸载并第二次安装它。
  3. 只使用python路径中的绝对目录。不要在安装程序和运行Django之间更改python路径,无论是在环境中还是通过自定义的manage或settings.py,如果可能的话。一些manage.py或settings.py使用的python路径与软件包安装者使用的路径不同,例如“added”。或者"..“在其他目录之前。您的项目中不应包含...中的其他south目录。

建议1是Django的绝对要求。即使我以某种方式使用多个版本来测试我的应用程序与多个版本的Python、Django等,其他两个也很有用。

主要需求的调查示例:

代码语言:javascript
复制
$ python manage.py shell
>>> import os
>>> import south.management.commands.migrate
>>> assert os.path.isfile(south.management.commands.migrate.__file__)
票数 8
EN

Stack Overflow用户

发布于 2014-03-05 11:57:28

这在很大程度上是由于遵循了1.7 (DEV版本)教程,当时我们都通过pip安装了最新的稳定版本(1.6)。

按照1.6 tutorial或按照说明安装1.7dev版本的Django。

票数 14
EN

Stack Overflow用户

发布于 2013-11-26 02:37:52

我通过转到http://south.readthedocs.org/en/latest/installation.html并使用easy_install south解决了这个问题。然后,我在我的INSTALLED_APPS中添加了'south',它起作用了。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12346033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档