【问题标题】:Error trying to run pgAdmin4尝试运行 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 之外。

标签: python postgresql flask postgresql-9.4 pgadmin-4


【解决方案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

      【讨论】:

        猜你喜欢
        • 2015-07-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-23
        • 2020-12-11
        • 2019-05-06
        • 2011-08-10
        • 1970-01-01
        相关资源
        最近更新 更多