Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

superset_config.py doesn't work #2117

Closed
3 tasks done
zhangjiajie023 opened this issue Feb 6, 2017 · 8 comments
Closed
3 tasks done

superset_config.py doesn't work #2117

zhangjiajie023 opened this issue Feb 6, 2017 · 8 comments

Comments

@zhangjiajie023
Copy link

zhangjiajie023 commented Feb 6, 2017

Make sure these boxes are checked before submitting your issue - thank you!

  • I have checked the superset logs for python stacktraces and included it here as text if any
  • I have reproduced the issue with at least the latest released version of superset
  • I have checked the issue tracker for the same issue and I haven't found one similar

Superset version

0.15.0

Expected results

the parameters in superset_config.py should work.

Actual results

the parameters in superset_config.py don't work.

Steps to reproduce

  1. vim superset_config.py
    SQLALCHEMY_DATABASE_URI = 'sqlite:////path/to/superset.db' DRUID_IS_ACTIVE = False
    and
    mv superset_config.py /usr/local/superset

  2. add PYTHONPATH in /etc/profile
    export PYTHONPATH=/usr/local/superset:$PYTHONPATH
    or
    export PYTHONPATH=/usr/local/superset
    source /etc/profile

  3. run superset
    I set wrong SQLALCHEMY_DATABASE_URI but superset still works

so the superset_config.py doesn't works, something wrong?

@pawan-kv
Copy link

pawan-kv commented Feb 6, 2017

Looks like superset has created new "superset.db" in the path you specified. Thats why its working. Check once. Superset will create a path If path doesn't exist.

@zhangjiajie023
Copy link
Author

zhangjiajie023 commented Feb 6, 2017

@pawan-kv The superset_config.py is loaded in supersete/config.py, so I set CONFIG_PATH_ENV_VAR = '/usr/local/superset' in supersete/config.py, and it works, which seems that there is no need to set PYTHONPATH, right?

noooo, this is not a good way, because i can build the source code.

in supersete/config.py,
from superset_config import *
i can understand why the import failed when superset_config.py is put in PYTHONPATH?

@pawan-kv
Copy link

pawan-kv commented Feb 6, 2017

Maybe Im not getting you quite right.

But this is how we can override "config.py" default settings:

  1. create a new file "superset_config.py" in some directory say "/home/local_settings/".
    Add line:
    SQLALCHEMY_DATABASE_URI = 'sqlite:////home/data/superset.db' (or any path u have write permissions to)

  2. Now you can do either:
    export PYTHONPATH=/home/local_settings/:$PYTHONPATH
    OR
    export SUPERSET_CONFIG_PATH=/home/local_settings/

Thats it.

@xrmx xrmx added the question label Feb 7, 2017
@xrmx
Copy link
Contributor

xrmx commented Feb 9, 2017

Thanks @pawan-kv!

@xrmx xrmx closed this as completed Feb 9, 2017
@astawiarski
Copy link

Didn't work for me in superset 0.18.0 . When setting SUPERSET_CONFIG_PATH=/code/superset/ it was throwing this:

Traceback (most recent call last):
  File "/usr/local/bin/superset", line 12, in <module>
    from superset.cli import manager
  File "/usr/local/lib/python3.5/dist-packages/superset/__init__.py", line 21, in <module>
    from superset import utils, config  # noqa
  File "/usr/local/lib/python3.5/dist-packages/superset/config.py", line 305, in <module>
    imp.load_source('superset_config', os.environ[CONFIG_PATH_ENV_VAR])
  File "/usr/lib/python3.5/imp.py", line 172, in load_source
    module = _load(spec)
  File "<frozen importlib._bootstrap>", line 693, in _load
  File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 669, in exec_module
  File "<frozen importlib._bootstrap_external>", line 774, in get_code
  File "/usr/lib/python3.5/imp.py", line 158, in get_data
    return super().get_data(path)
  File "<frozen importlib._bootstrap_external>", line 826, in get_data
IsADirectoryError: [Errno 21] Is a directory: '/code/superset/'

What did work is setting the full path to the file, not just directory. SUPERSET_CONFIG_PATH=/code/superset/superset_config.py

@pixdrift
Copy link

pixdrift commented Oct 3, 2018

We just ran into this. If the option is for the config file, not path, can it be changed to:

SUPERSET_CONFIG_FILE=

@iamcoolkranthi
Copy link

HI all , i am getting below issue can any one help

Traceback (most recent call last):
File "/home/itsupport/superset-venv/bin/superset", line 12, in
from superset.cli import manager
File "/home/itsupport/superset-venv/lib/python3.5/site-packages/superset/init.py", line 22, in
from superset import config, utils
File "/home/itsupport/superset-venv/lib/python3.5/site-packages/superset/config.py", line 437, in
os.environ[CONFIG_PATH_ENV_VAR])
File "/usr/lib/python3.5/imp.py", line 172, in load_source
module = _load(spec)
File "/home/kranthi/superset-venv/bin/superset_config.py", line 34
secret = <>

@mistercrunch
Copy link
Member

secret = <> is not valid python.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants