python - 无法在新的 docker 容器上安装 psycopg2-binary
问题描述
我在尝试在新的 Docker 容器上运行我的 django 项目时遇到了问题。这是我第一次使用 Docker,我似乎找不到在其上运行 django 项目的好方法。尝试了多个教程后,我总是收到有关未安装 psycopg2 的错误。
要求.txt:
-i https://pypi.org/simple
asgiref==3.2.7
django-cors-headers==3.3.0
django==3.0.7
djangorestframework==3.11.0
gunicorn==20.0.4
psycopg2-binary==2.8.5
pytz==2020.1
sqlparse==0.3.1
Dockerfile:
# pull official base image
FROM python:3.8.3-alpine
# set work directory
WORKDIR /usr/src/app
# set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# install dependencies
RUN pip install --upgrade pip
COPY ./requirements.txt .
RUN pip install -r requirements.txt
# copy project
COPY . .
# set project environment variables
# grab these via Python's os.environ
# these are 100% optional here
ENV PORT=8000
ENV SECRET_KEY_TWITTER = "***"
在运行 docker-compose build 时,我收到以下错误:
Error: pg_config executable not found.
pg_config is required to build psycopg2 from source. 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'.
If you prefer to avoid building psycopg2 from source, please install the PyPI
'psycopg2-binary' package instead.
我很乐意回答任何可能导致解决方案的问题。另外,也许有人可以向我推荐一个关于 dockerizing django 应用程序的好教程?
解决方案
我让它工作了。这是代码:
FROM python:3.8.3-slim #Image python:3.9.5-slim also works # Image python:3.9.5-slim-buster also works
RUN apt-get update \
&& apt-get -y install libpq-dev gcc \
&& pip install psycopg2
推荐阅读
- html - 使用正则表达式 Python3 时超时
- python - 我想创建一个列表列表
- spring - 在应用程序属性中更改服务器端口
- swift - 我正在尝试运行一个基于手势识别的项目,我的 iOS 模拟器说找不到前置摄像头
- php - 如何克服 Laravel 8 模板系统问题
- jwt - 无法从解码的令牌中读取数据 jwt verify
- react-native - react-native-webview 高漏洞 UXSS
- sql - MS SQL BCP:无法解析列级排序规则
- azure - 如何将服务总线队列作为源连接到 Azure 数据工厂?
- node.js - Nightwatch.js 在执行 .setValue() 时无法识别 XPath/CSS 选择器