gpt4 book ai didi

python - pgadmin4 docker 无法转储服务器配置;没有名为 'flask' 的模块

转载 作者:行者123 更新时间:2023-12-03 08:26:14 24 4
gpt4 key购买 nike

我正在尝试使用位于此处的 dpage/pgadmin4:latest docker 镜像:https://hub.docker.com/r/dpage/pgadmin4/

但是当我尝试从 docker 容器内转储我的服务器设置时,我遇到了困难。

这是一个可重现的代码:

docker-compose.yml:

version: '3.8'
services:
pgadmin4:
image: dpage/pgadmin4
container_name: pgadmin4
environment:
- PGADMIN_DEFAULT_EMAIL=postgres@localhost
- PGADMIN_DEFAULT_PASSWORD="K%)*r7K~57Kcnw"
- PGADMIN_LISTEN_PORT=8080
ports:
- "8080:8080"
restart: unless-stopped
network_mode: host
docker-compose pull && docker-compose up --build -d

然后从 Web 界面 http://localhost:8080 设置一些服务器连接,并尝试从容器内部转储它们:

$ docker-compose exec pgadmin4 sh

然后:

/pgadmin4 $ python3 /pgadmin4/setup.py --dump-servers /tmp/servers.json
Traceback (most recent call last):
File "/pgadmin4/setup.py", line 31, in <module>
from pgadmin import create_app
File "/pgadmin4/pgadmin/__init__.py", line 21, in <module>
from flask import Flask, abort, request, current_app, session, url_for
ModuleNotFoundError: No module named 'flask'

我显然尝试实际安装 Flask 本身(我以为是!),但我在这里也遇到了一些麻烦:

/pgadmin4 $ pip install flask
WARNING: The directory '/home/pgadmin/.cache/pip' or its parent directory is
not owned or is not writable by the current user. The cache has been disabled.
Check the permissions and owner of that directory. If executing pip with sudo,
you may want sudo's -H flag.

Defaulting to user installation because normal site-packages is not writeable

Collecting flask
Downloading Flask-1.1.2-py2.py3-none-any.whl (94 kB)
|████████████████████████████████| 94 kB 312 kB/s
Collecting Jinja2>=2.10.1
Downloading Jinja2-2.11.3-py2.py3-none-any.whl (125 kB)
|████████████████████████████████| 125 kB 385 kB/s
Collecting Werkzeug>=0.15
Downloading Werkzeug-1.0.1-py2.py3-none-any.whl (298 kB)
|████████████████████████████████| 298 kB 279 kB/s
Collecting itsdangerous>=0.24
Downloading itsdangerous-1.1.0-py2.py3-none-any.whl (16 kB)
Collecting click>=5.1
Downloading click-7.1.2-py2.py3-none-any.whl (82 kB)
|████████████████████████████████| 82 kB 332 kB/s
Collecting MarkupSafe>=0.23
Downloading MarkupSafe-1.1.1.tar.gz (19 kB)
Using legacy 'setup.py install' for MarkupSafe, since package 'wheel' is not installed.
Installing collected packages: MarkupSafe, Werkzeug, Jinja2, itsdangerous, click, flask
ERROR: Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/home/pgadmin'
Check the permissions.


最佳答案

看来容器使用的python3安装与sh路径中的不是同一个

它正在使用的位于 /venv/bin/python3 您可以在 Dockerfile 中看到它.

所以如果你运行:

/venv/bin/python3/pgadmin4/setup.py --dump-servers/tmp/servers.json

如果您使用该 python 二进制文件,该命令将起作用。对我来说,它失败了,因为 pgadmin 用户没有写入权限(root 拥有的文件夹),所以我需要使用 root 用户再次登录。为此,您需要运行:

docker-compose exec -it -u 0 pgadmin4 sh

关于python - pgadmin4 docker 无法转储服务器配置;没有名为 'flask' 的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66561151/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com