Django 在 MacOS 上崩溃

Posted

技术标签:

【中文标题】Django 在 MacOS 上崩溃【英文标题】:Django Broken on MacOS 【发布时间】:2018-09-04 12:05:50 【问题描述】:

我正在开发一个关于 Django 的项目,但我遇到了一个问题。我做了一些错误的迁移,并决定从项目文件夹中删除它们并重建它们。既然我这样做了,Django 的行为“就像删除了它的一个源文件”。我尝试migratemakemigrationrunserver 的每个项目都会出现错误。我试图用 pip 重新安装 django,但它根本没有帮助。我还删除了.pyc 文件,但它根本没有帮助。我什至生成了新项目,但仍然在同一个问题上运行。我确实认为这很有帮助,但我不得不提到shell 启动正常。

错误

Performing system checks...

System check identified no issues (0 silenced).
Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x1049a38c8>
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/django/utils/autoreload.py", line 225, in wrapper
    fn(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/django/core/management/commands/runserver.py", line 123, in inner_run
    self.check_migrations()
  File "/usr/local/lib/python3.6/site-packages/django/core/management/base.py", line 427, in check_migrations
    executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS])
  File "/usr/local/lib/python3.6/site-packages/django/db/migrations/executor.py", line 18, in __init__
    self.loader = MigrationLoader(self.connection)
  File "/usr/local/lib/python3.6/site-packages/django/db/migrations/loader.py", line 49, in __init__
    self.build_graph()
  File "/usr/local/lib/python3.6/site-packages/django/db/migrations/loader.py", line 267, in build_graph
    raise exc
  File "/usr/local/lib/python3.6/site-packages/django/db/migrations/loader.py", line 241, in build_graph
    self.graph.validate_consistency()
  File "/usr/local/lib/python3.6/site-packages/django/db/migrations/graph.py", line 243, in validate_consistency
    [n.raise_error() for n in self.node_map.values() if isinstance(n, DummyNode)]
  File "/usr/local/lib/python3.6/site-packages/django/db/migrations/graph.py", line 243, in <listcomp>
    [n.raise_error() for n in self.node_map.values() if isinstance(n, DummyNode)]
  File "/usr/local/lib/python3.6/site-packages/django/db/migrations/graph.py", line 96, in raise_error
    raise NodeNotFoundError(self.error_message, self.key, origin=self.origin)
django.db.migrations.exceptions.NodeNotFoundError: Migration admin.0003_auto_20180326_1230 dependencies reference nonexistent parent node ('profile', '0003_auto_20180326_1230')

它表现得很奇怪,我仍然不明白是什么导致了这个问题。

更新

使用virtualenv 我设法让它工作。我用python3 设置了virtualenv,然后我只运行了makemigrations,它就像什么都没发生过一样。所以我猜是源文件有问题。另一方面,我仍然找不到导致问题的原因。

【问题讨论】:

这是一个不一致的迁移问题。检查这个***.com/questions/44651760/…。 django的安装也与此无关。错误是因为你的错误。 是的,这是我的错误似乎很合乎逻辑,但是 Django 在每个项目上都失败了吗? 不,它不会失败。查看我评论中提到的链接,仔细阅读该问题和答案。如果您仍然遇到问题,请发表评论。 我尝试了您提到的问题中提出的所有解决方案,但没有任何效果。同样的错误一次又一次地出现......我什至删除了数据库。没有迁移文件,makemigrations 失败 【参考方案1】:

迁移admin.0003_auto_20180326_1230 依赖于profile.0003_auto_20180326_1230

当您删除profile.0003_auto_20180326_1230时,您应该查看admin.0003_auto_20180326_1230,看看您是否可以修改或删除它。

admin.0003_auto_20180326_1230 应该是admin/migrations/0003_auto_20180326_1230.py

更新

建议在 Django 中使用 virtualenv。 doc

我个人使用Pipenv 来管理我的虚拟环境。

Django 一定是混合了来自不同项目的迁移,因为它们没有被 virtualenvs 隔离。也许它找不到正确的设置模块或其他东西。

【讨论】:

其实我也是这么想的,但是在完全不相关的项目中也会出现同样的问题,而且我的项目中没有管理目录。我无法在计算机上的任何位置找到导致问题的文件。 是的,我知道 :|,我已经设置了它但忘记激活它。这一定是问题所在。关于如何解决这些冲突的任何想法?我想可能是django目录下的python缓存文件。

以上是关于Django 在 MacOS 上崩溃的主要内容,如果未能解决你的问题,请参考以下文章

为啥在 macOS 上使用 QThread 时 PyQt 应用程序崩溃或挂起?

Opencv imshow 在 macOS 11.0.1 (Big Sur) 上崩溃 python 启动器

VMware工程师确认macOS Catalina 10.15.6存在Bug导致虚拟机崩溃

macOS Document App SwiftUI 项目上的 NSPersistentDocument FetchRequest 扭曲属性崩溃

MacOS 曝存在严重 Bug:不停重启系统崩溃

macOS新版本存在严重BUG会导致系统崩溃吗?