前情提要
安装完Supetset后,准备通过superset db upgrade
初始化Supetset数据库,然后报错以下内容
Traceback (most recent call last):
File "/opt/module/miniconda3/envs/superset/bin/superset", line 5, in <module>
from superset.cli import superset
File "/opt/module/miniconda3/envs/superset/lib/python3.7/site-packages/superset/__init__.py", line 21, in <module>
from superset.app import create_app
File "/opt/module/miniconda3/envs/superset/lib/python3.7/site-packages/superset/app.py", line 23, in <module>
from superset.initialization import SupersetAppInitializer
File "/opt/module/miniconda3/envs/superset/lib/python3.7/site-packages/superset/initialization/__init__.py", line 33, in <module>
from superset.extensions import (
File "/opt/module/miniconda3/envs/superset/lib/python3.7/site-packages/superset/extensions.py", line 111, in <module>
celery_app = celery.Celery()
File "/opt/module/miniconda3/envs/superset/lib/python3.7/site-packages/celery/local.py", line 509, in __getattr__
module = __import__(self._object_origins[name], None, None, [name])
File "/opt/module/miniconda3/envs/superset/lib/python3.7/site-packages/celery/app/__init__.py", line 5, in <module>
from celery import _state
File "/opt/module/miniconda3/envs/superset/lib/python3.7/site-packages/celery/_state.py", line 17, in <module>
from celery.utils.threads import LocalStack
File "/opt/module/miniconda3/envs/superset/lib/python3.7/site-packages/celery/utils/__init__.py", line 19, in <module>
from .nodenames import nodename, nodesplit, worker_direct
File "/opt/module/miniconda3/envs/superset/lib/python3.7/site-packages/celery/utils/nodenames.py", line 9, in <module>
from kombu.entity import Exchange, Queue
File "/opt/module/miniconda3/envs/superset/lib/python3.7/site-packages/kombu/entity.py", line 9, in <module>
from .serialization import prepare_accept_content
File "/opt/module/miniconda3/envs/superset/lib/python3.7/site-packages/kombu/serialization.py", line 456, in <module>
for ep, args in entrypoints('kombu.serializers'): # pragma: no cover
File "/opt/module/miniconda3/envs/superset/lib/python3.7/site-packages/kombu/utils/compat.py", line 93, in entrypoints
for ep in importlib_metadata.entry_points().get(namespace, [])
AttributeError: 'EntryPoints' object has no attribute 'get'
由于本人学识浅陋,只知道是有组件不兼容导致的,但是判断不出来哪个组件有问题,虽然解决了问题,但是不知问题出在哪。如果有大佬指出,还万分感谢。
解决过程1
首先通过csdn的chitgpt,它提示是celery的问题,键入celery --version
后,再次报错相同的信息,于是朝着这个方向去解决。
输入pip3 install importlib-metadata==4.13.0 -i https://pypi.douban.com/simple Looking in indexes: https://pypi.douban.com/simple
后,celery --version
可以正确显示版本了
解决过程2
但是执行superset db upgrade
再次报错如下内容
Traceback (most recent call last):
File "/opt/module/miniconda3/envs/superset/bin/superset", line 5, in <module>
from superset.cli import superset
File "/opt/module/miniconda3/envs/superset/lib/python3.7/site-packages/superset/__init__.py", line 21, in <module>
from superset.app import create_app
File "/opt/module/miniconda3/envs/superset/lib/python3.7/site-packages/superset/app.py", line 23, in <module>
from superset.initialization import SupersetAppInitializer
File "/opt/module/miniconda3/envs/superset/lib/python3.7/site-packages/superset/initialization/__init__.py", line 51, in <module>
from superset.security import SupersetSecurityManager
File "/opt/module/miniconda3/envs/superset/lib/python3.7/site-packages/superset/security/__init__.py", line 17, in <module>
from superset.security.manager import SupersetSecurityManager # noqa: F401
File "/opt/module/miniconda3/envs/superset/lib/python3.7/site-packages/superset/security/manager.py", line 66, in <module>
from superset.utils.core import DatasourceName, RowLevelSecurityFilterType
File "/opt/module/miniconda3/envs/superset/lib/python3.7/site-packages/superset/utils/core.py", line 71, in <module>
from cryptography.hazmat.backends.openssl.x509 import _Certificate
ModuleNotFoundError: No module named 'cryptography.hazmat.backends.openssl.x509'
这次搜索最后一行,得到了解决方法
pip uninstall cryptography
pip install cryptography==2.9.2 -i https://pypi.douban.com/simple/
pip install sqlalchemy-utils==0.36.6 -i https://pypi.douban.com/simple/
随后成功执行superset db upgrade