pgAdmin4 错误:ModuleNotFoundError:没有名为“email_validator”的模块

Dim*_*rov 4 python linux archlinux python-3.x pgadmin-4

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

sudo pacman -S pgadmin4
Run Code Online (Sandbox Code Playgroud)

然后我简单地尝试运行pgadmin4并得到以下错误:

"An error occurred initialising the pgAdmin 4 server:\n\nFailed to launch the application server, server thread exiting."
Run Code Online (Sandbox Code Playgroud)

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

"An error occurred initialising the pgAdmin 4 server:\n\nFailed to launch the application server, server thread exiting."
Run Code Online (Sandbox Code Playgroud)

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

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'
Run Code Online (Sandbox Code Playgroud)

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

sudo python3 /usr/lib/pgadmin4/web/pgAdmin4.py
Run Code Online (Sandbox Code Playgroud)

然后:

pip install email_validator
Run Code Online (Sandbox Code Playgroud)

但是,错误仍然存​​在。我应该修改我的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'
Run Code Online (Sandbox Code Playgroud)

此后我尝试重新安装pgadmin4多次,同样的问题。任何帮助将非常感激。

mar*_*son 5

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

您可以通过 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
Run Code Online (Sandbox Code Playgroud)

然后访问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...