pgAdmin4错误:ModuleNotFoundError:没有名为“email\u validator”的模块

2024-04-24 01:25:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试在Arch Linux上安装pgadmin4。 以下是我所做的:

sudo pacman -S pgadmin4

然后,我只是尝试运行pgadmin4,并得到以下错误:

"An error occurred initialising the pgAdmin 4 server:\n\nFailed to launch the application server, server thread exiting."

然后,我尝试直接运行pgAdmin4.py

sudo python3 /usr/lib/pgadmin4/web/pgAdmin4.py

我发现以下stacktrace有一个错误:

Traceback (most recent call last):
  File "/usr/lib/pgadmin4/web/pgAdmin4.py", line 35, in <module>
    import config
  File "/usr/lib/pgadmin4/web/config.py", line 25, in <module>
    from pgadmin.utils import env, IS_WIN, fs_short_path
  File "/usr/lib/pgadmin4/web/pgadmin/__init__.py", line 28, in <module>
    from flask_security import Security, SQLAlchemyUserDatastore, current_user
  File "/usr/lib/python3.9/site-packages/flask_security/__init__.py", line 15, in <module>
    from .core import Security, RoleMixin, UserMixin, AnonymousUser, current_user
  File "/usr/lib/python3.9/site-packages/flask_security/core.py", line 48, in <module>
    from .mail_util import MailUtil
  File "/usr/lib/python3.9/site-packages/flask_security/mail_util.py", line 14, in <module>
    import email_validator
ModuleNotFoundError: No module named 'email_validator'

然后我尝试安装pip,试图自己安装丢失的模块:

sudo pacman -S python-pip

然后:

pip install email_validator

然而,错误依然存在。我应该修改我的PATH变量吗?我做错了什么

编辑

因此,在评论提供了一些帮助并进行了更多搜索之后,我修改了~/.config/pgadmin/pgadmin4.conf文件,使其具有以下PythonPath=/usr/lib/python3.9/site-packages:/usr/lib/python3.9:/home/ddimitrov/.local/lib/python3.9/site-packages,这“解决”了此错误,但我遇到了一个全新的错误:

Traceback (most recent call last):
  File "/usr/lib/pgadmin4/web/pgAdmin4.py", line 94, in <module>
    app = create_app()
  File "/usr/lib/pgadmin4/web/pgadmin/__init__.py", line 347, in create_app
    if not os.path.exists(SQLITE_PATH) or get_version() == -1:
  File "/usr/lib/pgadmin4/web/pgadmin/setup/db_version.py", line 19, in get_version
    return version.value
AttributeError: 'NoneType' object has no attribute 'value'

从那以后,我多次尝试重新安装pgadmin4,都是同一个问题。任何帮助都将不胜感激


Tags: inpyimportweblibpackagesusr错误
2条回答

佩尔·巴斯蒂安·杜雷尔(巴斯蒂安·杜雷尔) 看起来您还需要降级python flask和python flask安全性。它们不能分别超过2.0和4.0

我也遇到了同样的问题,并对每个包进行了降级,现在可以正常工作了,但这可能会破坏其他依赖最新版本的python flask和python flask安全性的包

如果降级,还需要更新/etc/pacman.conf,以便在更新时忽略这两个包

这并不能解决具体问题,但时间太长,无法发表评论,但可以让您工作:

您可以通过docker运行pgadmin4,并将其直接链接到主机网络

docker run -e 'PGADMIN_LISTEN_PORT=8080' \
           -e 'PGADMIN_DEFAULT_EMAIL=user@domain.com' \
           -e "PGADMIN_DEFAULT_PASSWORD=secret" \
            network="host" \
           dpage/pgadmin4:latest

然后参观http://localhost:8080,使用user@domain.com:secret登录。您现在可以像平常一样添加服务器,只需指定“localhost”作为主机和您的普通用户名(我认为这是arch默认配置访问权限的方式)

另见:https://www.pgadmin.org/docs/pgadmin4/latest/container_deployment.html#examples

您还可以查看配置pip install pgadmin4和创建一个config.py(可能在/etc/pgadmin4?)来设置SERVER_MODE=False

真希望你能去pgadmin4 desktop-mode

相关问题 更多 >