尝试运行pgAdmin4时出现错误

17

我已经安装了postgresql 9.6(使用推荐的Linux安装程序),它带有pgAdmin4,但是遇到了一些错误。

首先,我不得不将文件夹名称从“pgAdmin 4”(注意多余的空格)更改为“pgAdmin4”,以避免“找不到文件”错误。

然后我运行sudo python pgAdmin4.py ,并得到了以下错误:

Traceback (most recent call last):
   File "../../pgAdmin4.py", line 24, in <module>
      from pgadmin import create_app
   File "/opt/PostgreSQL/9.6/pgAdmin4/web/pgadmin/__init__.py", line 17, in <module>
      from flask import Flask, abort, request, current_app
ImportError: No module named flask

我尝试遵循相关的问题:Flask ImportError: No Module Named Flask -- 成功在虚拟环境中安装了Flask。

但是随后出现了其他缺失的Flask相关模块:flask_babel、flask_login和flask_security。我使用pip安装了它们,但是接着又出现了一个缺失模块的错误htmlmin.minify,而我似乎无法安装这个模块。

Traceback (most recent call last):
   File "../pgAdmin4.py", line 24, in <module>
      from pgadmin import create_app
   File "/opt/PostgreSQL/9.6/pgAdmin4/web/pgadmin/__init__.py", line 23, in <module>
      from htmlmin.minify import html_minify
ImportError: No module named htmlmin.minify

此处所述,我还将PYTHONPATH 导出到flask上的路径,但仍然出现相同的错误。

那么,有人知道如何在ubuntu环境下使pgAdmin4工作吗?


你安装了virtualenv吗?你是在virtualenv内部尝试完成所有操作吗? - Nurjan
我安装了virtualenv,但可能并没有在虚拟环境中运行?我该如何确认? - Elad Tabak
您需要通过运行. venv/bin/activate来激活虚拟环境,其中venv是virtualenv venv的结果。您还可以使用命令source代替点。 - Nurjan
是的,我运行了环境,这导致终端显示以env名称(flask)开头的提示符。但仍然出现错误。 我怀疑pip安装没有在virtualenv上完成。当我运行pip install flask时,权限出错,所以我使用sudo运行它,但我认为sudo会导致它被安装在virtualenv之外。 - Elad Tabak
7个回答

12

在尝试了各种方法仍无法将PgAdmin 4添加到Fedora 28中后,我选择使用Docker选项:

mkdir ~/.pgadmin4  # to store config and stuff
docker run -d --rm --network host -v ~/.pgadmin4:/pgadmin thajeztah/pgadmin4

然后转到http://localhost:5050,完成操作。

更多信息请参见https://github.com/thaJeztah/pgadmin4-docker


2
这绝对是最简单的解决方案。我现在已经在Chromebook上运行Docker和pgAdmin4了。有关Chrombook Docker设置的详细信息,请按照以下步骤操作:在Chromebook上安装Dockercurl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-commonsudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"sudo apt update sudo apt install docker-cesudo usermod -a -G docker $USER - John Dauphine

10
根据https://www.pgadmin.org/download/pip4.php
运行以下命令安装virtualenv:
sudo apt-get install virtualenv

您还需要安装这两个库:

sudo apt-get install libpq-dev python-dev 

然后:

cd ~/bin/
virtualenv pgadmin4

我更喜欢使用~/bin/目录来安装应用程序。
然后,您根据所使用的Python版本下载pgadmin4-1.1-py2-none-any.whlpgadmin4-1.1-py3-none-any.whl。在此示例中,我们使用Python 2.7。
您可以下载pgadmin4:
wget https://ftp.postgresql.org/pub/pgadmin3/pgadmin4/v1.1/pip/pgadmin4-1.1-py2-none-any.whl

激活虚拟环境:

. ~/bin/pgadmin4/bin/activate

接下来,您将在终端中看到(pgadmin4)

在pgadmin4内部运行:

pip install ./pgadmin4-1.1-py2-none-any.whl

之后,您必须能够运行pgadmin4:

python ~/bin/pgadmin4/lib/python2.7/site-packages/pgadmin4/pgAdmin4.py 

为了使运行过程更加容易,您可以创建一个别名。例如,在Ubuntu 16.04 LTS中,将别名添加到~/.bash_aliases文件中:

alias pgadmin4='. /home/your_username/bin/pgadmin4/bin/activate; /home/your_username/bin/pgadmin4/lib/python2.7/site-packages/pgadmin4/pgAdmin4.py'

your_username替换为您的真实用户名。

然后在以下位置为pgAdmin4.py文件授予执行权限,例如764

/home/your_username/bin/pgadmin4/lib/python2.7/site-packages/pgadmin4/pgAdmin4.py

此外,您需要编辑 pgAdmin4.py 文件,并在顶部添加此行:
#!/home/your_username/bin/pgadmin4/bin/python

其中your_username是您的真实用户名。

这将确保您使用所需版本的Python运行应用程序,并包含所有必要的依赖项,以便运行pgadmin4

然后运行. ~/.bashrc以应用更改。

现在,您可以打开终端,只需键入pgadmin4即可运行它。

打开浏览器并指向:

http://127.0.0.1:5050

还有一件事需要注意——如果您需要在桌面模式下运行pgadmin4,则需要在以下位置将SERVER_MODE更改为False:

/home/your_username/bin/pgadmin4/lib/python2.7/site-packages/pgadmin4/config.py

否则,当您访问localhost:5050时,它会要求您输入登录名和密码。
更新:
截至2021年(以及更早时间),更好的选择是使用预配置的带有pgadmin4的Docker容器。例如,可以从https://hub.docker.com/r/dpage/pgadmin4/下载pgadmin4 Docker镜像。
希望对您有所帮助。

1
@kuanb,根据官方网站https://www.pgadmin.org/download/pip4.php,您需要在Python 2.7的网站包中使用该路径才能运行pgadmin4。作为一种解决方法,我创建了一个别名,其中我激活虚拟环境,然后运行pgadmin4,并且它可以很好地工作。我将编辑答案以显示其工作原理。 - Nurjan
2021-03-04 12:11:59 错误404:未找到。 - Stephan Kristyn
@SteveK 这里有 https://ftp.postgresql.org/pub/pgadmin/pgadmin4/ - pabgaran
针对2022年的Python 3,pgadmin4 v1.1已被弃用,您可以使用以下命令下载新版本:wget https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v6.6/pip/pgadmin4-6.6-py3-none-any.whl - sahil panindre
感谢您包含 Docker 文档的链接。 - Pfinnn
显示剩余4条评论

3

请尝试使用以下命令:

sudo apt-get install pgadmin4

sudo python3.5 /usr/share/pgadmin4/web/pgAdmin4.py

1
然后您需要将每个Flask扩展安装到您的Python 3.5安装中。 - Abdelouahab
sudo apt-get install pgadmin4 is not working anymore as on the date this comment is posted. It gives an error E: Package 'pgadmin4' has no installation candidate - Suraj S Jain

0

至少在 Debian 上,Web 版本不依赖于 sudo apt install pgadmin4-web。可能需要使用丰富的客户端,但您可以将其视为替代方案。


0

您可以使用以下命令进行安装:

同时安装桌面和Web模式:

sudo apt install pgadmin4

仅安装桌面模式:

sudo apt install pgadmin4-desktop

仅安装Web模式:

sudo apt install pgadmin4-web

您可以参考以下文档: https://www.pgadmin.org/download/pgadmin-4-apt/


0

对于以下链接 - 错误404:未找到。

wget https://ftp.postgresql.org/pub/pgadmin3/pgadmin4/v1.1/pip/pgadmin4-1.1-py2-none-any.whl

使用备用链接

wget https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v1.4/pip/pgadmin4-1.4-py2.py3-none-any.whl

同时运行参考资料

pip install pgadmin4-1.4-py2.py3-none-any.whl -U psycopg2

-1
如果您使用的是Windows系统,请尝试删除文件夹:%APPDATA%\pgAdmin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接