我使用的是最新版本的django django 2.2.12
我尝试在迁移前使用以下命令检查错误python3 manage.py check
但它会抛出下面的错误
Traceback (most recent call last):
File "manage.py", line 22, in <module>
main()
File "manage.py", line 18, in main
execute_from_command_line(sys.argv)
File "/usr/lib/python3/dist-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
utility.execute()
File "/usr/lib/python3/dist-packages/django/core/management/__init__.py", line 375, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/lib/python3/dist-packages/django/core/management/base.py", line 336, in run_from_argv
connections.close_all()
File "/usr/lib/python3/dist-packages/django/db/utils.py", line 224, in close_all
connection.close()
File "/usr/lib/python3/dist-packages/django/db/backends/sqlite3/base.py", line 248, in close
if not self.is_in_memory_db():
File "/usr/lib/python3/dist-packages/django/db/backends/sqlite3/base.py", line 367, in is_in_memory_db
return self.creation.is_in_memory_db(self.settings_dict['NAME'])
File "/usr/lib/python3/dist-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
7条答案
按热度按时间shyt4zoc1#
确保在项目级www.example.com中导入了ossettings.py:
在www.example.com的数据库中添加以下内容settings.py:
在django的最新版本中,我们可以使用**str()**进行以下设置:
wmvff8tz2#
如果你使用Django3.1startproject模板,你必须在你的设置文件中使用**string()**函数。
在设置文件中找到此代码
将其更改为:
或者您可以使用os. path. join(BASE_DIR,"db.sqlite3"),
ecbunoof3#
听起来像是使用
Path
对象指定了数据库设置,请将其转换为str()
。1dkrff034#
我正在使用
Ubuntu 20.04
、python 3.8.5
和Django 3.0.5
。在安装djongo
包以使用MongoDB
后,我遇到了相同的错误,相同的错误但原因不同,但是,我能够通过将BASE_DIR /“db.sqlite3”转换为字符串来修复该错误字符串(BASE_DIR / 'db.sqlite3')
wsewodh25#
我自己也很意外地遇到了这个问题。我在3.1.3中在虚拟环境之外生成了一系列Django项目,并做了一个快速的pip安装,这将我的Django需求降到了3.05。
在安装之后,随后的./manage.py脚本突然开始给我同样的回溯。重建我的项目时,我的设置如下所示:
这就是提示。似乎设置生成脚本会检测到您的环境何时更适合一种路径构造机制或另一种。
不幸的是,将str()封装在路径周围使我可以发出一些./manage命令而不出错,但是我无法在创建的任何其他项目中启动服务器而不进行更糟糕的跟踪。
我想知道是否有像〉pip revert--time= -2hrs这样的东西。
我最终卸载了最后几个包安装,并进行了显式Django 3.1.3安装,以回到我原来的位置。pip冻结时间。
5m1hhzi46#
这对我很有效:
nkhmeac67#
我在Ubuntu 20.04中使用Python 3.7和Django 3.1.5创建了一个新的Django项目。当我运行
./manage.py migrate
或./manage.py makemigrations
时,我得到了原始问题中的错误。我发现切换到Python 3.8可以修复这个错误。