python - 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
我试过多次重新安装,同样的问题。任何帮助将非常感激。
解决方案
这不能解决具体问题,但评论太长了,但它会让你工作:
您可以通过 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
...
推荐阅读
- python - 制作聚合网站时避免对 API 造成压力
- c# - 将数组索引链接到变量
- node.js - 如何在不使用 ref 的情况下在 mongoose 中进行填充
- unity3d - 鼠标右键单击无法统一
- php - Blade @inject 创建新的 Singleton 实例
- jmeter - Locust 和 Jmeter 的 HTTP 请求改变 Tomcat 服务器上的负载
- angular - 使用共享点中的角度更新 CheckBox 中的值
- image-processing - 将灰度HImage(MVtec Halcon库)转换为c#位图
- apache-camel - 从 Talend cSetHeader 中的 XPath 表达式获取字符串结果
- python - 用户警告:覆盖先前设置的目标。warnings.warn("覆盖之前设定的目标。")