Django执行python manage.py migrate时报如下错误:

File “/root/.python_env/.virtualenvs/venv/lib/python3.9/site-packages/django/db/backends/sqlite3/creation.py”, line 12, 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新版本不兼容导致的(我安装的是Django 2.2.13, Python 3.9.0)
django2.0中,django/db/backends/sqlite3/creation.py的代码如下
在这里插入图片描述
而最新的django3.1此处的代码为:
在这里插入图片描述
如果不想升级django的话可以参照新版django修改即可。
不过要在文件前面导入Path,即:

from pathlib import Path

所以改动如下:vim /root/.python_env/.virtualenvs/venv/lib/python3.9/site-packages/django/db/backends/sqlite3/creation.py

 

 

Categories: 未分类