es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

No puedo instalar psycopg2 en mi entorno virtual.

Compré un libro llamado “Django for professionals” y actualmente estoy en el capítulo 2, “PostgreSQL”. Tengo Django instalado en mi entorno virtual y mi proyecto está en Docker, como se puede ver en el siguiente código.

Cuando intento instalar psycopg, obtengo un error:
Advertencia: No se encontró Python 3.10 en su sistema…
Ni ‘pyenv’ ni ‘asdf’ se pudieron encontrar para instalar Python.
Puede especificar versiones específicas de Python con:
$ pipenv –python path/to/python
.

Ejecuto el siguiente comando: docker-compose exec web pipenv install psycopg2-binary==2.8.5.

Mi archivo Dockerfile es:

FROM python:3.9

ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

WORKDIR /code

COPY Pipfile Pipfile.lock /code/
RUN pip install pipenv && pipenv install --system

COPY . /code/

Mi archivo docker-compose.yml es:

version: "3.9"

services:
  web:
    build: .
    command: python3 /code/manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - 8000:8000
    depends_on:
      - db
  db:
    image: postgres:11
    environment:
    - "POSTGRES_HOST_AUTH_METHOD=trust"

(Note: The translation of code snippets may not be exact.)

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el error está relacionado con la versión de Python que no se encuentra en su sistema. El comando que ejecutó, docker-compose exec web pipenv install psycopg2-binary==2.8.5, intentó instalar el paquete en el entorno virtual configurado por pipenv, pero parece que no pudo encontrar la versión adecuada de Python.

    Una solución podría ser especificar la versión de Python que desea utilizar en su Dockerfile cambiando la primera línea a FROM python:3.10 o a otra versión que tenga instalada en su sistema.

    Alternativamente, podría utilizar un método diferente para gestionar las versiones de Python, como pyenv o asdf, tal como se sugiere en el mensaje de error. Una vez que tenga instalada la versión correcta de Python, debería poder ejecutar el comando docker-compose exec web pipenv install psycopg2-binary==2.8.5 sin problemas.

Comments are closed.