微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在database_name中返回database_name ==':memory:'或'mode = memory'TypeError:'PosixPath'类型的参数不可迭代

如何解决在database_name中返回database_name ==':memory:'或'mode = memory'TypeError:'PosixPath'类型的参数不可迭代

我在Django中制作了一个webapp。我尝试将其部署在pythonanywhere上一切正常,但是最后,当我尝试使用python manage.py collectstatic收集静态文件时,它给了我这个错误

return database_name == ':memory:' or 'mode=memory' in database_name
TypeError: argument of type 'PosixPath' is not iterable

建议我如何解决

这是我的setting.py文件

import os
from pathlib import Path

# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent


# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/3.1/howto/deployment/checklist/

# Security WARNING: keep the secret key used in production secret!
SECRET_KEY = '!25%rdt-$_$bsc*fl)e7x2*x6awjca^3_2t-k@l0tu*8k!f33&'

# Security WARNING: don't run with debug turned on in production!
DEBUG = False

ALLOWED_HOSTS = ['*']


# Database
# https://docs.djangoproject.com/en/3.1/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3','NAME': BASE_DIR / 'db.sqlite3',}
}


# Password validation
# https://docs.djangoproject.com/en/3.1/ref/settings/#auth-password-validators

AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',},{
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',{
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',{
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',]

# Static files (CSS,JavaScript,Images)
# https://docs.djangoproject.com/en/3.1/howto/static-files/

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR / 'static/')

解决方法

如果您正在使用Django v3.1,则可以尝试在str()文件中的数据库路径周围放置settings.py。这是因为SQLite仅接受字符串,而Django v3.1 settings.py返回一个pathlib.Path对象。

# settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3','NAME': str(BASE_DIR / 'db.sqlite3'),}
}

我遇到了同样的问题,并在这里找到了答案: https://forum.djangoproject.com/t/django-tutorial-python-manage-py-startapp-polls-fails/2718

,

也许您有错字,而不是用'/'代替。 STATIC_ROOT = os.path.join(BASE_DIR,'static')

,

使用最新的Django v3.1时,我遇到了同样的问题。
我遇到了这个问题,因为我忘记激活虚拟环境

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?