使用startproject构建的站点迁移显示错误 - Django 1.8.2 Windows

时间:2015-06-06 16:01:26

标签: python django

所以我希望用Django构建一些简单的东西,这是我使用Python的第一行代码,我是一个菜鸟,但我已经与其他平台合作。

我确实喜欢教程说并将Django安装到我的系统中进行了代码测试,看它是否正常工作,通过。 Django,setuptool和pip都已安装,路径变量全部设置完毕。

我做了

django-admin startproject mysite

有效。

然后我去了

python manage.py migrate

我收到了一个错误,

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "c:\Users\Sworup\AppData\Local\Programs\Python\Python35-32\lib\site-packa
ges\django\core\management\__init__.py", line 338, in execute_from_command_line
    utility.execute()
  File "c:\Users\Sworup\AppData\Local\Programs\Python\Python35-32\lib\site-packa
ges\django\core\management\__init__.py", line 330, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "c:\Users\Sworup\AppData\Local\Programs\Python\Python35-32\lib\site-packa
ges\django\core\management\__init__.py", line 190, in fetch_command
    klass = load_command_class(app_name, subcommand)
  File "c:\Users\Sworup\AppData\Local\Programs\Python\Python35-32\lib\site-packa
ges\django\core\management\__init__.py", line 40, in load_command_class
    module = import_module('%s.management.commands.%s' % (app_name, name))
  File "c:\Users\Sworup\AppData\Local\Programs\Python\Python35-32\lib\importlib\
__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 986, in _gcd_import
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 661, in exec_module
  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
  File "c:\Users\Sworup\AppData\Local\Programs\Python\Python35-32\lib\site-packa
ges\django\core\management\commands\migrate.py", line 19, in <module>
    from django.db.migrations.autodetector import MigrationAutodetector
  File "c:\Users\Sworup\AppData\Local\Programs\Python\Python35-32\lib\site-packa
ges\django\db\migrations\autodetector.py", line 13, in <module>
    from django.db.migrations.questioner import MigrationQuestioner
  File "c:\Users\Sworup\AppData\Local\Programs\Python\Python35-32\lib\site-packa
ges\django\db\migrations\questioner.py", line 12, in <module>
    from .loader import MIGRATIONS_MODULE_NAME
  File "c:\Users\Sworup\AppData\Local\Programs\Python\Python35-32\lib\site-packa
ges\django\db\migrations\loader.py", line 10, in <module>
    from django.db.migrations.recorder import MigrationRecorder
  File "c:\Users\Sworup\AppData\Local\Programs\Python\Python35-32\lib\site-packa
ges\django\db\migrations\recorder.py", line 9, in <module>
    class MigrationRecorder(object):
  File "c:\Users\Sworup\AppData\Local\Programs\Python\Python35-32\lib\site-packa
ges\django\db\migrations\recorder.py", line 23, in MigrationRecorder
    class Migration(models.Model):
  File "c:\Users\Sworup\AppData\Local\Programs\Python\Python35-32\lib\site-packa
ges\django\db\models\base.py", line 309, in __new__
    new_class._meta.apps.register_model(new_class._meta.app_label, new_class)
  File "c:\Users\Sworup\AppData\Local\Programs\Python\Python35-32\lib\site-packa
ges\django\apps\registry.py", line 223, in register_model
    self.clear_cache()
  File "c:\Users\Sworup\AppData\Local\Programs\Python\Python35-32\lib\site-packa
ges\django\apps\registry.py", line 344, in clear_cache
    for model in self.get_models(include_auto_created=True):
TypeError: get_models() missing 1 required positional argument: 'self'

我还没有使用默认代码更改任何内容。我只想进行迁移,然后启动服务器以查看默认的启动画面。

顺便说一下,服务器启动命令不起作用。

我不知道这里有什么问题,我做了怎么开始教程说,Django让我很尴尬,不让我通过入门教程。 :(

1 个答案:

答案 0 :(得分:3)

简而言之
要开始学习Python和Django,我个人认为在Python 3.3上运行它是目前的最佳选择。

稍微长一点

正如评论中所写,我怀疑你遇到了与Django 1.8和Python 3.5不兼容的问题。 Django 1.9将是第一个应该支持Python 3.5的版本。有关受支持的版本see this table的列表。

Python 3.4目前是最新的稳定Python版本,因此选择3.3可确保您不会遇到尚未针对3.4进行测试和更新的第三方软件包中的小错误。

此外,也许更重要一点:许多提供Python托管的商业托管公司可能没有最新的稳定Python可用。因此,当您要启动您的网站时,您可能需要使用旧版本进行检查。

Python 2与Python 3
要使代码运行,请安装最新的稳定版Python 2.7Python 3.3。原因是Django和Python可用的第三方软件包的庞大生态系统。通过使用Python 2.7,您仍将获得最高的兼容性。也就是说,Python 3是未来的广泛使用的库和包中的支持非常高,所以在大多数用例中使用它都很好。

请记住,只要您正在查看要安装的新软件包(例如使用pip install <package_name>),请检查软件包是否与Python 3兼容。{{1}中通常会对其进行评论。这个信息很容易找到。