首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Admin.py引发ImproperlyConfigured(“SECRET_KEY设置不能为空或没有命名为‘石墨’的模块

问Admin.py引发ImproperlyConfigured(“SECRET_KEY设置不能为空或没有命名为‘石墨’的模块
EN

Stack Overflow用户
提问于 2019-09-14 06:02:21
回答 2查看 497关注 0票数 0

我正试图在Ubuntu16.04上安装Graphite。django-admin.py引发ImproperlyConfigured(“SECRET_KEY设置不能为空)。

如果我将输出石墨_ROOT=/opt/石墨更改为:

代码语言:javascript
复制
export GRAPHITE_ROOT=/opt/graphite/webapp

我不再得到SECRET_KEY错误,但我得到:

代码语言:javascript
复制
File "/opt/graphite/lib/python3.5/site-packages/django/conf/__init__.py", line 157, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "/opt/graphite/lib/python3.5/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 986, in _gcd_import
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 944, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 986, in _gcd_import
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 956, in _find_and_load_unlocked
ImportError: No module named 'graphite'

我遵循了这些指示并执行了以下步骤:

代码语言:javascript
复制
sudo apt-get install python-dev libcairo2-dev libffi-dev build-essential

wget https://launchpad.net/graphite/0.9/0.9.10/+download/graphite-web-0.9.10.tar.gz

wget https://launchpad.net/graphite/0.9/0.9.10/+download/carbon-0.9.10.tar.gz

wget https://launchpad.net/graphite/0.9/0.9.10/+download/whisper-0.9.10.tar.gz

wget https://launchpad.net/graphite/0.9/0.9.10/+download/check-dependencies.py


tar xvf whisper-0.9.10.tar.gz 
tar xvf carbon-0.9.10.tar.gz 
tar xvf graphite-web-0.9.10.tar.gz 

cd carbon-0.9.10/

sudo python setup.py install

cd whisper-0.9.10/
sudo python setup.py install

cd graphite-web-0.9.10/
sudo python setup.py install

sudo virtualenv /opt/graphite
source /opt/graphite/bin/activate

sudo chown -R ubuntu:ubuntu /opt/graphite

pip install Django 
pip install pytz scandir 
pip install django-tagging 
pip install pycairo

sudo apt install apache2

wget https://github.com/GrahamDumpleton/mod_wsgi/archive/4.6.5.tar.gz

tar xvf 4.6.5.tar.gz 
cd mod_wsgi-4.6.5/
sudo ./configure 
sudo make install

cd /opt/graphite/conf
cp graphite.wsgi.example graphite.wsgi

cd /opt/graphite/webapp/graphite
cp local_settings.py.example local_settings.py

export $GRAPHITE_ROOT=/opt/graphite

PYTHONPATH=$GRAPHITE_ROOT/webapp /opt/graphite/lib/python3.5/site-packages/django/bin/django-admin.py collectstatic --noinput --settings=graphite.settings

产生此错误:

代码语言:javascript
复制
File "/opt/graphite/lib/python3.5/site-packages/django/bin/django-admin.py", line 5, in <module>
    management.execute_from_command_line()
  File "/home/ubuntu/.pyenv/versions/3.4.3/lib/python3.4/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line
    utility.execute()
  File "/home/ubuntu/.pyenv/versions/3.4.3/lib/python3.4/site-packages/django/core/management/__init__.py", line 330, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/ubuntu/.pyenv/versions/3.4.3/lib/python3.4/site-packages/django/core/management/__init__.py", line 182, in fetch_command
    settings.INSTALLED_APPS
  File "/home/ubuntu/.pyenv/versions/3.4.3/lib/python3.4/site-packages/django/conf/__init__.py", line 48, in __getattr__
    self._setup(name)
  File "/home/ubuntu/.pyenv/versions/3.4.3/lib/python3.4/site-packages/django/conf/__init__.py", line 44, in _setup
    self._wrapped = Settings(settings_module)
  File "/home/ubuntu/.pyenv/versions/3.4.3/lib/python3.4/site-packages/django/conf/__init__.py", line 113, in __init__
    raise ImproperlyConfigured("The SECRET_KEY setting must not be empty.")
django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty.

我相信这样做的原因是django同时被安装在虚拟环境和$DJANGO_HOME中。说明中说,当使用virtualenv时,将完整的路径放置到django-admin.py,我就这样做了。

因此,它是从错误的位置读取global_settings.py,还是在错误的位置查找local_settings.py。

代码语言:javascript
复制
./opt/graphite/bin/django-admin.py
./opt/graphite/lib/python3.5/site-packages/django/bin/django-admin.py

这两个机构都有:

SECRET_KEY = '‘

另外,我试图在这两个字段中都添加一个值,如果您查看抛出错误的代码,它只会查找字段的存在,而不是它是否为空,则不应该是必需的。

SECRET_KEY = '1232323‘

代码语言:javascript
复制
./opt/graphite/lib/python3.5/site-packages/django/conf/global_settings.py
./home/ubuntu/.pyenv/versions/3.4.3/lib/python3.4/site-packages/django/conf/global_settings.py

下面是在/home/ubuntu/.pyenv/versions/3.4.3/lib/python3.4/site-packages/django/conf/init.py:中抛出错误的代码

代码语言:javascript
复制
if not self.SECRET_KEY:
            raise ImproperlyConfigured("The SECRET_KEY setting must not be empty.")
EN

回答 2

Stack Overflow用户

发布于 2019-09-18 10:22:03

0.9.10是非常老的版本(7年前的2012年5月),它不支持Python 3。如果您想从源代码中安装Graphite,请尝试最新版本(1.1.5)。

但是您也可以从软件包中安装它(尽管版本稍旧,Ubuntu16.04中的版本为0.9.15 )。您可以使用社区编写的更多发行版特定手册。例如https://www.scaleway.com/en/docs/install-and-configure-graphite-on-ubuntu/或https://www.vultr.com/docs/how-to-install-and-configure-graphite-on-ubuntu-16-04

您也可以尝试码头石墨 --这是一种快速方便的方法,可以轻松地运行最新版本。

票数 0
EN

Stack Overflow用户

发布于 2019-09-18 20:34:43

似乎您在安装了石墨-web和碳和耳语之后激活了虚拟主机,但如果使用虚拟主机,则需要在安装它们之前激活它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57932901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档