尝试运行 pgAdmin4 时出错
Posted
技术标签:
【中文标题】尝试运行 pgAdmin4 时出错【英文标题】:Error trying to run pgAdmin4 【发布时间】:2017-05-06 17:07:08 【问题描述】:我已经安装了 pgAdmin4 附带的 postgresql 9.6(使用建议的 linux 安装程序),但出现了一些错误。
首先,我必须将文件夹名称从“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 -- 设法在 virtualenv 上安装了烧瓶。
但后来我开始得到其他缺少的烧瓶相关模块: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 导出到烧瓶上的那个,如 here 所述,仍然得到同样的错误。
那么,有人知道如何让 pgAdmin4 在 ubuntu 环境中工作吗?
【问题讨论】:
你安装了virtualenv吗?您是否尝试从 virtualenv 内部做所有事情? 我安装了 virtualenv,但可能是我实际上并没有在该虚拟 env 中运行?我如何确定? 您需要通过运行. venv/bin/activate
激活virtualenv,其中venv 是virtualenv venv
的结果。插入点,可以使用命令source
。
是的,我运行了环境,这导致终端显示以 env 名称(flask)开头的提示。仍然,得到一个错误。我怀疑 pip 安装没有在 virtualenv 上完成。当我运行 pip install flask 时出现权限错误,所以我使用 sudo 运行它,但我认为 sudo 会导致它安装在 virtualenv 之外。
【参考方案1】:
根据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.whl
或pgadmin4-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 时它会询问你的登录名和密码。
UDPATE:
从 2021 年开始(甚至更早),一个更好的选择是使用带有 pgadmin4 的预配置 docker 容器。例如,可以从以下位置下载 pgadmin4 docker 映像 https://hub.docker.com/r/dpage/pgadmin4/.
希望这会有所帮助。
【讨论】:
因此,使用您使用的 virtualenv 创建一个目录然后启动它是有意义的。奇怪的是,您需要指向 python 2.7 站点包中的文件位置才能启动应用程序。这看起来是不是有点令人费解?这真的是人们每次想要启动 PgAdmin4 时必须遵循的预期工作流程吗? @kuanb,根据官方网站pgadmin.org/download/pip4.php,您需要在python 2.7'站点包中使用该路径才能运行pgadmin4。作为一种解决方法,我创建了一个别名,在那里我激活了 virtualenv,然后运行 pgadmin4,它运行良好。我将编辑答案以显示它是如何工作的。 @Nurzhan 我认为您在别名定义中调用 pgadmin4.py 文件之前缺少“python”。 @newdimension 不,在调用pgadmin4.py
之前不需要python
。 pgadmin4.py
本身就是一个可执行文件。
这一行有错误。 wget https://ftp.postgresql.org/pub/pgadmin3/pgadmin4/v1.1/pip/pgadmin4-1.1-py2-none-any.whl
不需要 pgadmin3 文件夹。正确的网址应该是 https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v1.1/pip/pgadmin4-1.1-py2-none-any.whl
【参考方案2】:
按照关于将 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 了解更多信息。
【讨论】:
这是迄今为止最简单的解决方案。我现在在 Chromebook 上运行 Docker 和 pgAdmin4。有关 Chrombook Docker 设置的详细信息,请按照以下步骤操作:在 Chromebook 上安装 Docker curl -fsSL download.docker.com/linux/debian/gpg | sudo apt-key add - sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common sudo add-apt-repository "deb [arch=amd64] download.docker.com/linux/debian $(lsb_release -cs) stable" sudo apt update sudo apt install docker-ce sudo usermod -a -G docker $USER【参考方案3】:请尝试以下命令:
sudo apt-get install pgadmin4
sudo python3.5 /usr/share/pgadmin4/web/pgAdmin4.py
【讨论】:
然后您必须将每个烧瓶扩展安装到您的 python 3.5 安装中sudo apt-get install pgadmin4
在发布此评论之日不再有效。它给出了一个错误E: Package 'pgadmin4' has no installation candidate
【参考方案4】:
在 debian 上,至少 web 版本 不依赖于 sudo apt install pgadmin4-web
。知道您可能需要富客户端,但您可以将其视为替代方案
【讨论】:
【参考方案5】:对于以下链接 - 错误 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
也运行reference
pip install pgadmin4-1.4-py2.py3-none-any.whl -U psycopg2
【讨论】:
【参考方案6】:如果您使用 Windows,请尝试删除该文件夹:%APPDATA%\pgAdmin
【讨论】:
以上是关于尝试运行 pgAdmin4 时出错的主要内容,如果未能解决你的问题,请参考以下文章