- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Postgres 和 Docker 构建一个 Flask 应用程序。我想连接到 Postgres 的 AWS RDS 实例,但对我的 Flask 应用程序使用 Docker。但是,当尝试设置 psycopg2
时,它会遇到错误,因为它找不到 pg_config
。这是错误:
Building api
Step 1/5 : FROM python:3.6.3-alpine3.6
---> 84c98ca3b5c5
Step 2/5 : WORKDIR /usr/src/app
---> Using cache
---> 407c158f5ee4
Step 3/5 : COPY . .
---> 966df18d329e
Step 4/5 : RUN pip install -r requirements.txt
---> Running in 284cc97aeb63
Collecting aniso8601==1.3.0 (from -r requirements.txt (line 1))
Downloading aniso8601-1.3.0.tar.gz (57kB)
Collecting click==6.7 (from -r requirements.txt (line 2))
Downloading click-6.7-py2.py3-none-any.whl (71kB)
Collecting Flask==0.12.2 (from -r requirements.txt (line 3))
Downloading Flask-0.12.2-py2.py3-none-any.whl (83kB)
Collecting Flask-RESTful==0.3.6 (from -r requirements.txt (line 4))
Downloading Flask_RESTful-0.3.6-py2.py3-none-any.whl
Collecting Flask-SQLAlchemy==2.3.2 (from -r requirements.txt (line 5))
Downloading Flask_SQLAlchemy-2.3.2-py2.py3-none-any.whl
Collecting itsdangerous==0.24 (from -r requirements.txt (line 6))
Downloading itsdangerous-0.24.tar.gz (46kB)
Collecting Jinja2==2.9.6 (from -r requirements.txt (line 7))
Downloading Jinja2-2.9.6-py2.py3-none-any.whl (340kB)
Collecting MarkupSafe==1.0 (from -r requirements.txt (line 8))
Downloading MarkupSafe-1.0.tar.gz
Collecting psycopg2==2.7.3.1 (from -r requirements.txt (line 9))
Downloading psycopg2-2.7.3.1.tar.gz (425kB)
Complete output from command python setup.py egg_info:
running egg_info
creating pip-egg-info/psycopg2.egg-info
writing pip-egg-info/psycopg2.egg-info/PKG-INFO
writing dependency_links to pip-egg-info/psycopg2.egg-info/dependency_links.txt
writing top-level names to pip-egg-info/psycopg2.egg-info/top_level.txt
writing manifest file 'pip-egg-info/psycopg2.egg-info/SOURCES.txt'
Error: pg_config executable not found.
Please add the directory containing pg_config to the PATH
or specify the full executable path with the option:
python setup.py build_ext --pg-config /path/to/pg_config build ...
or with the pg_config option in 'setup.cfg'.
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-01lf5grh/psycopg2/
ERROR: Service 'api' failed to build: The command '/bin/sh -c pip install -r requirements.txt' returned a non-zero code: 1
这是我的 Dockerfile
:
FROM python:3.6.3-alpine3.6
WORKDIR /usr/src/app
COPY . .
RUN pip install -r requirements.txt
CMD ["python", "app.py"]
许多其他人似乎在本地也有类似的问题,但没有一个涉及使用 Docker。这似乎是一个 Docker 问题,因为我可以设置本地虚拟环境并且设置工作正常,因为我在本地安装了 Postgres 并且它能够找到我的本地 pg_config
。
似乎在容器构建/设置期间,Docker 试图在容器中找到 pg_config
。有没有办法在容器中安装 pg_config
,即使我不会使用 Postgres 的容器化实例,而是 RDS 上的实例?
欢迎就如何解决此问题提出任何和所有建议。
最佳答案
使用 Python 3.4.8、3.5.5、3.6.5 和 2.7.14 测试(只需将 3 替换为 2):
# You can use a specific version too, like python:3.6.5-alpine3.7
FROM python:3-alpine
WORKDIR /usr/src/app
COPY requirements.txt .
RUN \
apk add --no-cache postgresql-libs && \
apk add --no-cache --virtual .build-deps gcc musl-dev postgresql-dev && \
python3 -m pip install -r requirements.txt --no-cache-dir && \
apk --purge del .build-deps
COPY . .
CMD ["python3", "app.py"]
说明:要构建 Psycopg,您需要软件包 gcc musl-dev postgresql-dev
。然后您还需要 pg_config 可执行文件:虽然只需安装 postgresql-dev
就可以工作,但 postgresql-libs
也可以,并且占用的空间减少了大约 12 MB。
这是答案的原始版本(基于 this Dockerfile ),其中我手动将 Python 安装到纯 Alpine 镜像上,因为当时 Python 不提供带有 Python 3.6 和 Alpine 3.7 的 Docker 镜像。如果你想像那样安装 Python 2.7,还可以执行 apk add py2-pip
(在旧的 Alpine 存储库中称为 py-pip
)。
FROM alpine:3.7
WORKDIR /usr/src/app
COPY requirements.txt .
RUN \
apk add --no-cache python3 postgresql-libs && \
apk add --no-cache --virtual .build-deps gcc python3-dev musl-dev postgresql-dev && \
python3 -m pip install -r requirements.txt --no-cache-dir && \
apk --purge del .build-deps
COPY . .
CMD ["python3", "app.py"]
关于python - 错误 : pg_config executable not found when installing psycopg2 on Alpine in Docker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65468602/
我在 Mac 上使用 PostgreSQL 在 Rails 3 中构建应用程序... PostgreSQL 工作正常,但在命令行中出现以下错误: $ pg_config -bash: pg_confi
我正在尝试设置 saleor(基于 Django)。我按照网站上的说明做了“python -m pip install -r requests.txt”。一切进展顺利,直到安装 Collecting
我面临着与 I'm trying to install psycopg2 onto Mac OS 10.6.3; it claims it can't find "stdarg.h" but I ca
我在安装 psycopg2 时遇到问题。当我尝试 pip install psycopg2 时出现以下错误: Error: pg_config executable not found. Please
我在安装 psycopg2 时遇到问题。当我尝试 pip install psycopg2 时出现以下错误: Error: pg_config executable not found. Please
这里是新手,正在尝试设置 Django 以使用 PostgreSQL。 我使用的是 mac osx 10.6.8。我还安装了 PostgreSQL 9.3 当我在终端中运行 pip install p
我在安装 psycopg2 时遇到问题。当我尝试 pip install psycopg2 时出现以下错误: Error: pg_config executable not found. Please
默认情况下,我在两台 ubuntu 14 机器上安装了 postgres 10 版本,但我在两台机器上安装了 postgres 9.6。 但是在其中一个上 pg_config 给我: VERSION
我尝试从 this site 安装 psycopg2(PostgreSQL 数据库适配器) ,但是当我在 cd 进入包并写入 后尝试安装时 python setup.py install 我收到以下错
我通过 postgresql 图形安装程序 ( http://www.postgresql.org/download/macosx/ ) 在我的 macbook 上安装了 postgresql。现在我
Gem::Ext::BuildError: ERROR: Failed to build gem native extension. /Users/markhoyt/.rvm/rubies/ruby-
在 nixos 上,当尝试使用 $ stack --nix build 构建我的项目时,我遇到了以下错误。 $ stack --nix build ... Linking /run/user/1000
我使用 waf作为我的构建系统,我想使用 Postgres 编译一个小的 C 程序。我在我的程序中包含了 postgres.h,所以我需要在我的 wscript 文件中找到它的路径。我知道我可以通过运
所以这就是我的目标:获取一个导入 pgdb 的 .py 文件来运行。 为此,据我所知,我需要 PygreSql。 我同时安装了 postgresql 9.4.4 和 python 2.7.9(带有源代
尝试为我的 python Flask 应用程序安装驻留在 Azure 上的 postgresql 数据库;但是psycopg2包的安装需要安装postgresql时附带的pg_config文件。那么如
我正在尝试从源构建 Postgresql 8.3.1(稍后我需要在其上运行扩展补丁)。尽管如此,src/tutorial 并没有生成 $make make: pg_config: Command no
我有一个在 Elastic Beanstalk 上使用 PostgreSQL 的 Django 项目。 我在部署时发现了下一个错误: Error: pg_config executable not f
我正在使用 PipelineDB,它是 Postgresql 的一个自定义但兼容的分支。我想将 plpythonu.control 安装到其中,以便能够将 PL/Python 用于用户定义的函数。 我
我正在测试 AWS 以启动网络服务。我坚持使用 pg_config。错误日志为 /app/requirements.txt (line 1)) Using cached psycopg2-2.6.2.
我正在学习如何将 Postgres 与 Python (sqlalchemy) 结合使用。我在安装 psycopg2 时卡住了。我有以下错误: 找不到 pg_config 可执行文件错误 我知道这是一
我是一名优秀的程序员,十分优秀!