Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django环境/设置问题:AttributeError:&x27;设置';对象没有属性';使用REDIS';_Python_Django_Python 3.x_Ubuntu 18.04 - Fatal编程技术网

Python Django环境/设置问题:AttributeError:&x27;设置';对象没有属性';使用REDIS';

Python Django环境/设置问题:AttributeError:&x27;设置';对象没有属性';使用REDIS';,python,django,python-3.x,ubuntu-18.04,Python,Django,Python 3.x,Ubuntu 18.04,我是django和docker安装环境的新手 我有一个现有的django项目,需要部署在本地服务器上。我正在Windows上为Linux Ubuntu 18.04 TLS配置python环境。 我可以使用pipenv安装进行安装。安装了以下django软件包: Django==3.0.5 django-cors-headers==3.2.1 django-debug-toolbar==2.2 django-environ==0.4.5 django-filter==2.2.0 django-po

我是django和docker安装环境的新手

我有一个现有的django项目,需要部署在本地服务器上。我正在Windows上为Linux Ubuntu 18.04 TLS配置python环境。 我可以使用pipenv安装进行安装。安装了以下django软件包:

Django==3.0.5
django-cors-headers==3.2.1
django-debug-toolbar==2.2
django-environ==0.4.5
django-filter==2.2.0
django-polymorphic==2.1.2
django-storages==1.9.1
djangorestframework==3.11.0
但当我运行django admin--version时,我得到了一个错误:

AttributeError:“设置”对象没有“使用\u REDIS”属性

完整堆栈跟踪如下所示:

Traceback (most recent call last):
  File "/home/username/.local/share/virtualenvs/project_code/bin/django-admin", line 8, in <module>
    sys.exit(execute_from_command_line())
  File "/home/username/.local/share/virtualenvs/project_code/lib/python3.7/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
    utility.execute()
  File "/home/username/.local/share/virtualenvs/project_code/lib/python3.7/site-packages/django/core/management/__init__.py", line 377, in execute
    django.setup()
  File "/home/username/.local/share/virtualenvs/project_code/lib/python3.7/site-packages/django/__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/home/username/.local/share/virtualenvs/project_code/lib/python3.7/site-packages/django/apps/registry.py", line 114, in populate
    app_config.import_models()
  File "/home/username/.local/share/virtualenvs/project_code/lib/python3.7/site-packages/django/apps/config.py", line 211, in import_models
    self.models_module = import_module(models_module_name)
  File "/usr/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/mnt/c/Users/test/git_repos/lab/models.py", line 11, in <module>
    from catalystlab.data.models.entity import Tag, Type, Entity, update_types
  File "//mnt/c/Users/test/git_repos/lab/data/__init__.py", line 32, in <module>
    DATA_CACHE = caches['default' if settings.USE_REDIS else 'fallback']
  File "/home/username/.local/share/virtualenvs/project_code/lib/python3.7/site-packages/django/conf/__init__.py", line 77, in __getattr__
    val = getattr(self._wrapped, name)
AttributeError: 'Settings' object has no attribute 'USE_REDIS'
回溯(最近一次呼叫最后一次):
文件“/home/username/.local/share/virtualenvs/project\u code/bin/django admin”,第8行,在
sys.exit(从命令行()执行命令)
文件“/home/username/.local/share/virtualenvs/project_code/lib/python3.7/site packages/django/core/management/_init__.py”,第401行,从命令行执行
utility.execute()
文件“/home/username/.local/share/virtualenvs/project_code/lib/python3.7/site packages/django/core/management/_init__.py”,执行中第377行
django.setup()
文件“/home/username/.local/share/virtualenvs/project_code/lib/python3.7/site packages/django/_init__.py”,第24行,在安装程序中
应用程序。填充(设置。已安装的应用程序)
文件“/home/username/.local/share/virtualenvs/project_code/lib/python3.7/site packages/django/apps/registry.py”,第114行,在填充中
app_config.import_models()
文件“/home/username/.local/share/virtualenvs/project\u code/lib/python3.7/site packages/django/apps/config.py”,第211行,在导入模型中
self.models\u module=导入模块(models\u module\u name)
导入模块中的文件“/usr/lib/python3.7/importlib/_init__u.py”,第127行
return _bootstrap._gcd_import(名称[级别:],包,级别)
文件“”,第1006行,在\u gcd\u导入中
文件“”,第983行,在_find_和_load中
文件“”,第967行,在“查找”和“加载”中解锁
文件“”,第677行,在\u加载\u解锁
exec_模块中第728行的文件“”
文件“”,第219行,在“调用”中,删除了“帧”
文件“/mnt/c/Users/test/git_repos/lab/models.py”,第11行,在
从catalystlab.data.models.entity导入标记、类型、实体、更新类型
文件“//mnt/c/Users/test/git_repos/lab/data/_init__.py”,第32行,在
数据\u缓存=缓存[“默认”如果设置。使用\u REDIS else“回退”]
文件“/home/username/.local/share/virtualenvs/project_code/lib/python3.7/site packages/django/conf/_init__.py”,第77行,在__
val=getattr(自包装,名称)
AttributeError:“设置”对象没有“使用\u REDIS”属性

我想知道默认情况下该属性是否必须在django设置中,或者我需要使用其他详细信息更新django设置。

简短回答:是的,您需要在django设置中设置它。看起来该值应该是布尔值,因此
True
False

如果它是一个现有的项目,那么它很可能应该按原样使用代码,因此您需要一些其他配置,从而最终获得正确的设置配置。我认为它可以作为环境变量,或者您的设置检查redis安装。它可以从依赖项的文档中指示,也可以根据项目本身指示。 也许你也需要。。。如果尚未安装Redis,请安装Redis。你提到了Windows for Linux Ubuntu 18.04,所以假设你提到了新的ish Windows支持的Ubuntu外壳,我认为你也需要在那里安装它,因为它也无法访问潜在的Windows安装。
也可能是docker配置不包括所需的环境变量/堆栈的问题。我不理解在VM shell中运行docker的操作。

您应该看到Django设置

该值应为布尔值,因此为1或0

升级Redis并尝试

升级Redis


您需要将其作为附加变量添加。我认为这是因为您使用的是需要它的包是的,在我的代码中,我使用的是like:DATA\u CACHE=caches['default'if settings.USE\u REDIS else'fallback']但是如果我需要在设置中添加变量,变量的值应该是多少。我相信你可以将它设置为
False
,除非你真的需要使用它。我已经将它设置为False并安装了Redis。现在我收到错误:“在settings.CACHES”%alias django.core.cache.backends.base.InvalidCacheBackendError:在settings.CACHEStry中找不到“fallback”的配置,将其设置为True。此外,您还需要设置回退缓存,以防我将其设置为False并安装了Redis。现在我收到错误:“在settings.CACHES”%alias django.core.cache.backends.base.InvalidCacheBackendError:在settings.CACHES中找不到“fallback”的配置。一个愚蠢的问题,我在哪里可以检查docker配置?对于你所了解的我的环境,我应该在哪里安装docker工具,在Ubuntu上还是在我的基本Windows机器上?如果我了解你的设置,你运行的是Windows作为主操作系统,运行的是Ubuntu VM,运行的是docker和pipenv。由于应用程序是在Ubuntu外壳中运行的,所以Windows是不可能的,应该是无关的。我对docker还不太熟悉,但docker的整个要点是要有一个包含此类配置的标准化环境,因此我认为docker conf应该是指定环境变量的位置。