首页 > 解决方案 > pgAdmin4 错误:ModuleNotFoundError:没有名为“email_validator”的模块

问题描述

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

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

我收到以下堆栈跟踪错误:

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我试过多次重新安装,同样的问题。任何帮助将非常感激。

标签: pythonpython-3.xlinuxarchlinuxpgadmin-4

解决方案


这不能解决具体问题,但评论太长了,但它会让你工作:

您可以通过 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...


推荐阅读