File “/home/cdd/Desktop/Django/typeidea-env/lib/python3.8/site-packages/django/db/backends/sqlite3/creation.py”, line 13, in is_in_memory_db
return database_name == ‘:memory:’ or ‘mode=memory’ in database_name
TypeError: argument of type ‘PosixPath’ is not iterable
这个问题应该是django2.0版本和python新版本不兼容导致的
django2.0中,django/db/backends/sqlite3/creation.py的代码如下

而最新的django3.1此处的代码为:

如果不想升级django的话可以参照新版django修改即可。
不过要在文件前面导入Path,即:
from pathlib import Path

本文解决了一个在使用Django 2.0与Python新版本时遇到的SQLite数据库兼容性问题,具体表现为TypeError异常。问题根源在于Django对数据库名称处理的代码与新版本Python的Path对象不兼容。解决方案包括升级Django到最新版本或手动修改Django源代码以适应新版本Python。
1503

被折叠的 条评论
为什么被折叠?



