对于Django管理命令而言,成功导入软件包是不够的。Python可以轻松地从压缩鸡蛋中导入软件包,但是Django需要一个正常的未压缩文件。
最初可以简化您的问题的建议:
- 管理命令必须作为文件存在于普通目录中
path..to..south/management/commands
(未压缩)。 - 尝试手动查找和删除South的旧安装。一个常见的问题是,某些软件包的一个版本已通过easy_install(压缩)安装或通过“ python setup.py install”手动安装,但pip没有卸载并第二次安装。
- 在python路径中仅使用绝对目录。如果可能,请勿在环境中或通过自定义的manage或settings.py更改安装程序与运行Django之间的python路径。一些manage.py或settings.py使用的Python路径与软件包安装程序使用的路径不同,例如,添加了“。” 或“ ..”在其他目录之前。您的项目
south
中.
或..
项目中不应有其他目录。
建议1是Django的绝对要求。即使我以某种方式使用多个版本来使用多个版本的Python,Django等测试我的应用程序,其他两个也非常有用。
主要需求调查示例:
$ python manage.py shell>>> import os>>> import south.management.commands.migrate>>> assert os.path.isfile(south.management.commands.migrate.__file__)



