首页 > 解决方案 > 每当我使用“manage.py”时,我都会收到以下错误 AttributeError: 'list' object has no attribute 'read'

问题描述

每当我尝试运行开发服务器或迁移时,我都会收到此错误...请有人帮忙。谢谢

我正在使用 postgres 并且我已经很好地设置了一切,我克隆了项目,当我尝试迁移时,我收到了这个错误......

这是引用。

Traceback (most recent call last):
  File "manage.py", line 15, in <module>
    execute_from_command_line(sys.argv)
  File "/home/uzzy/Documents/Bloverse/venv/lib/python3.6/site-packages/django/core/management/__init__.py", line 371, in execute_from_command_line
    utility.execute()
  File "/home/uzzy/Documents/Bloverse/venv/lib/python3.6/site-packages/django/core/management/__init__.py", line 317, in execute
    settings.INSTALLED_APPS
  File "/home/uzzy/Documents/Bloverse/venv/lib/python3.6/site-packages/django/conf/__init__.py", line 56, in __getattr__
    self._setup(name)
  File "/home/uzzy/Documents/Bloverse/venv/lib/python3.6/site-packages/django/conf/__init__.py", line 43, in _setup
    self._wrapped = Settings(settings_module)
  File "/home/uzzy/Documents/Bloverse/venv/lib/python3.6/site-packages/django/conf/__init__.py", line 106, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "/home/uzzy/Documents/Bloverse/venv/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/uzzy/Documents/Bloverse/bloverse-web/bloverse/settings.py", line 31, in <module>
    ALLOWED_HOSTS = config('ALLOWED_HOSTS', default=[], cast=Csv())
  File "/home/uzzy/Documents/Bloverse/venv/lib/python3.6/site-packages/decouple.py", line 197, in __call__
    return self.config(*args, **kwargs)
  File "/home/uzzy/Documents/Bloverse/venv/lib/python3.6/site-packages/decouple.py", line 85, in __call__
    return self.get(*args, **kwargs)
  File "/home/uzzy/Documents/Bloverse/venv/lib/python3.6/site-packages/decouple.py", line 79, in get
    return cast(value)
  File "/home/uzzy/Documents/Bloverse/venv/lib/python3.6/site-packages/decouple.py", line 233, in __call__
    return self.post_process(transform(s) for s in splitter)
  File "/home/uzzy/Documents/Bloverse/venv/lib/python3.6/site-packages/decouple.py", line 233, in <genexpr>
    return self.post_process(transform(s) for s in splitter)
  File "/usr/lib/python3.6/shlex.py", line 295, in __next__
    token = self.get_token()
  File "/usr/lib/python3.6/shlex.py", line 105, in get_token
    raw = self.read_token()
  File "/usr/lib/python3.6/shlex.py", line 136, in read_token
    nextchar = self.instream.read(1)
AttributeError: 'list' object has no attribute 'read'

Settings.py 这是设置中的数据库,看起来像......

# DATABASES = {
#     'default': {
#         'ENGINE': 'django.db.backends.sqlite3',
#         'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
#     }
# }

# # always make sure "psycopg2" is installed

try:
    # production database on Heroku
    DATABASES = {
        'default': dj_database_url.config(
            default=config('DATABASE_URL')
        )
    }
except:
    # local database for development

    DATABASES = {  
        'default': {
            'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
            'NAME': config('DB_NAME'),                      
            'USER': config('DB_USER'),                      
            'PASSWORD': config('DB_PASS'),     # remove "password" & add yours
            'HOST': config('DB_HOST'),                      
            'PORT': config('DB_PORT'),                      
        }
    }

manage.py 这是我的 manage.py 的样子...

import os
import sys

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "bloverse.settings")
    try:
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        raise ImportError(
            "Couldn't import Django. Are you sure it's installed and "
            "available on your PYTHONPATH environment variable? Did you "
            "forget to activate a virtual environment?"
        ) from exc
    execute_from_command_line(sys.argv)

标签: pythondjangopostgresql

解决方案


我刚刚删除了decouple.py...卸载了python-decouple,然后重新安装了python-decouple==3.1,错误就消失了。


推荐阅读