所以基本上我想安装 postgresql 和 pgadmin4 gui 来配合使用。Postgres 很容易,而 pgadmin4 - 这对我来说是一场噩梦。这就是我寻求帮助的原因。我对特定选项 pgadmin4-desktop 感兴趣。这就是我使用 apt 包管理器安装它的原因。当然,在版本 7.1 和 python 3.10 中它一开始不起作用。快速谷歌搜索相关问题和提到的解决方案总体如下:
- 重新安装 pgadmin
- 将 Python 降级到 3.9 或 3.8
我选择了第二个选项,它成功了!但是又出现了另一个问题 - 系统重启后我的终端无法再运行终端了:)不要问我为什么。好的,然后从时间移位快照简单恢复系统,我开始了那场不平衡的战斗。这次按照以下方法安装:操作说明。这导致我犯错误:
Total spawn time to start the pgAdmin4 server: 0.018 Sec Traceback (most recent call last): File "/usr/pgadmin4/web/pgAdmin4.py", line 47, in <module> import config File "/usr/pgadmin4/web/config.py", line 25, in <module> from pgadmin.utils import env, IS_WIN, fs_short_path File "/usr/pgadmin4/web/pgadmin/__init__.py", line 24, in <module> from flask import Flask, abort, request, current_app, session, url_for ModuleNotFoundError: No module named 'flask'
好的。然后我逐个安装了 pgadmin 抱怨的软件包,例如:
pip install eventlet flask flask_babel flask_socketio flask_mail flask_login flask_paranoid flask_security email_validator flask_sqlalchemy python-dateutil flask_migrate
不幸的是,它根本没有帮助。结果如下:
启动 pgAdmin4 服务器的总生成时间:0.018 秒回溯(最近一次调用):文件“/usr/pgadmin4/web/pgAdmin4.py”,第 47 行,导入配置文件“/usr/pgadmin4/web/config.py”,第 25 行,从 pgadmin.utils 导入 env、IS_WIN、fs_short_path 文件“/usr/pgadmin4/web/pgadmin/在里面.py”, 第 49 行, 来自 pgadmin 导入 authenticate 文件“/usr/pgadmin4/web/pgadmin/authenticate/在里面.py”,第 91 行,在蓝图中 = AuthenticateModule(MODULE_NAME,姓名, static_url_path='') 文件“/usr/pgadmin4/web/pgadmin/utils/在里面.py”,第 62 行,位于在里面 self.before_app_first_request(create_module_preference) AttributeError:'AuthenticateModule'对象没有属性'before_app_first_request'
好的,对我来说这看起来像是 Python 的问题。所以让我们尝试一下并使用 pyenv 工具。这就是我安装的方式:
zawier@Brix-Ubuntu:~$ pyenv versions
* system (set by PYENV_VERSION environment variable)
3.8.16
3.9.16
3.10.11
3.11.3
检查了上述所有版本,但都没有成功。返回的是第一个或第二个问题。一个版本(非常有趣)告诉我,我没有安装 flask 和其他软件包(这是不正确的,因为对于所有 python 版本,我都这样做了!)。
如何在 Python 版本之间切换?很简单,例如:
zawier@Brix-Ubuntu:~$ pyenv global 3.8.16
zawier@Brix-Ubuntu:~$ pyenv shell 3.8.16
zawier@Brix-Ubuntu:~$ source ~/.bashrc
zawier@Brix-Ubuntu:~$ pyenv versions
system
* 3.8.16 (set by PYENV_VERSION environment variable)
3.9.16
3.10.11
3.11.3
zawier@Brix-Ubuntu:~$ python3 --version
Python 3.8.16
最后我陷入了不断重复问题的循环地狱。有什么办法可以解决吗?
顺便说一句:Pgadmin 指向 python 链接:
zawier@Brix-Ubuntu:~$ readlink /usr/pgadmin4/venv/bin/python3
/home/zawier/.pyenv/shims/python3
所以我认为这没问题——如果有人想知道 pyenv 的影响。当然,我已经更改了我的 ~/.bashrc 以与 pyenv 一起工作。
在那种绝望的情况下,我也尝试使用 venv 环境 - 但到目前为止仍然没有运气。
我知道还有 DBeaver 软件,它开箱即用,非常方便。使用 postgres 终端 - 对于大型 sql 查询来说,这不是一个方便的选项!但在这里使用 pgadmin 感觉更自然 ;)
此致