• Jobs
  • About Us
  • Jobs
    • Home
    • Jobs
    • Courses and challenges
  • Businesses
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Hire tech talent
    • Blog
    • Sales
    • Salary Calculator

0

486
Views
Python/Docker ImportError: no se puede importar el nombre 'json' de itsdangerous

Estoy tratando de hacer que funcione una aplicación Flask y Docker, pero cuando intento ejecutarla usando mi comando docker-compose up en mi terminal de Visual Studio, me da un ImportError llamado ImportError: cannot import name 'json' from itsdangerous . He intentado buscar posibles soluciones a este problema, pero en este momento no hay muchas aquí ni en ningún otro lado. Las únicas dos soluciones que pude encontrar son cambiar la instalación actual de MarkupSafe y itsdangerous a una versión superior: https://serverfault.com/questions/1094062/from-itsdangerous-import-json-as-json-importerror-cannot- import-name-json-fr y otro en GitHub que me dice que cambie esencialmente MarkUpSafe y su instalación peligrosa de nuevo https://github.com/aws/aws-sam-cli/issues/3661 , también he intentado hacer un entorno virtual llamado veganetworkscriptenv para instalar los paquetes pero que también ha fallado. Actualmente estoy usando Flask 2.0.0 y Docker 5.0.0 y el error ocurre en la línea ocho en vegamain.py.

Aquí está el ImportError completo que obtengo cuando intento ejecutar el programa:

 veganetworkscript-backend-1 | Traceback (most recent call last): veganetworkscript-backend-1 | File "/app/vegamain.py", line 8, in <module> veganetworkscript-backend-1 | from flask import Flask veganetworkscript-backend-1 | File "/usr/local/lib/python3.9/site-packages/flask/__init__.py", line 19, in <module> veganetworkscript-backend-1 | from . import json veganetworkscript-backend-1 | File "/usr/local/lib/python3.9/site-packages/flask/json/__init__.py", line 15, in <module> veganetworkscript-backend-1 | from itsdangerous import json as _json veganetworkscript-backend-1 | ImportError: cannot import name 'json' from 'itsdangerous' (/usr/local/lib/python3.9/site-packages/itsdangerous/__init__.py) veganetworkscript-backend-1 exited with code 1

Aquí están mis archivos requirements.txt, vegamain.py, Dockerfile y docker-compose.yml:

requisitos.txt:

 Flask==2.0.0 Flask-SQLAlchemy==2.4.4 SQLAlchemy==1.3.20 Flask-Migrate==2.5.3 Flask-Script==2.0.6 Flask-Cors==3.0.9 requests==2.25.0 mysqlclient==2.0.1 pika==1.1.0 wolframalpha==4.3.0

vegamain.py:

 # Veganetwork (C) TetraSystemSolutions 2022 # all rights are reserved. # # Author: Trevor R. Blanchard Feb-19-2022-Jul-30-2022 # # get our imports in order first from flask import Flask # <-- error occurs here!!! # start the application through flask. app = Flask(__name__) # if set to true will return only a "Hello World" string. Debug = True # start a route to the index part of the app in flask. @app.route('/') def index(): if (Debug == True): return 'Hello World!' else: pass # start the flask app here ---> if __name__ == '__main__': app.run(debug=True, host='0.0.0.0')

archivo acoplable:

 FROM python:3.9 ENV PYTHONUNBUFFERED 1 WORKDIR /app COPY requirements.txt /app/requirements.txt RUN pip install -r requirements.txt COPY . /app

docker-compose.yml:

 version: '3.8' services: backend: build: context: . dockerfile: Dockerfile command: 'python vegamain.py' ports: - 8004:5000 volumes: - .:/app depends_on: - db # queue: # build: # context: . # dockerfile: Dockerfile # command: 'python -u consumer.py' # depends_on: # - db db: image: mysql:5.7.22 restart: always environment: MYSQL_DATABASE: admin MYSQL_USER: root MYSQL_PASSWORD: root MYSQL_ROOT_PASSWORD: root volumes: - .dbdata:/var/lib/mysql ports: - 33069:3306

¿Cómo puedo corregir exactamente este código? ¡gracias!

almost 4 years ago · Santiago Trujillo
8 answers
Answer question

0

Estaba enfrentando el mismo problema mientras ejecutaba contenedores docker con matraz.

Bajé Flask a 1.1.4 y markupsafe a 2.0.1 , lo que resolvió mi problema.

Marque esto como referencia.

almost 4 years ago · Santiago Trujillo Report

0

El error de importación parece estar relacionado con la última versión del paquete itsdangerous . Consulta aquí los últimos lanzamientos

En mi caso, hice que funcionara agregando explícitamente la dependencia del paquete itsdangerous==2.0.1 en mi archivo requirements.txt .

Para que los cambios sean efectivos, actualice su entorno virtual para reflejar los nuevos requirements.txt .

almost 4 years ago · Santiago Trujillo Report

0

La raíz de este problema parece ser que Flask 2.0.0 no es compatible. Intenta usar la última versión de Flask.

https://github.com/pallets/itsdangerous/issues/289

A partir del 8 de marzo de 2022, la última versión es 2.0.3:

 pip install Flask=2.0.3

Consulte el código fuente de Flask en Github para obtener la versión más reciente.

almost 4 years ago · Santiago Trujillo Report

0

Agregar itsdangerous==2.0.1 a mi archivo requirements.txt y bajar de categoría a Flask==1.1.1 me lo arregló.

almost 4 years ago · Santiago Trujillo Report

0

Solución 1 : actualice Flask a la última versión, es decir, 2.0.1 o superior. Es la forma recomendada de solucionar el problema.

 pip install Flask=2.0.1

O

 pip install Flask=2.1.0

Solución 2 : dado que es difícil actualizar a la última versión de Flask en menos tiempo, puede probar los siguientes métodos para resolver el problema.

puede continuar usando Flask versión 1.1.2 e intentar degradar itdangerous a 2.0.1. Puede hacer esto agregando itsdangerous==2.0.1 a su archivo requirements.txt.

Solución 3 : otra forma es actualizar Flask de 1.1.2 a 1.1.4 ya que no tiene cambios innovadores y también degradar la biblioteca markupsafe a 2.0.1

Una vez que actualice de Flask 1.1.2 a 1.1.4, se enfrentará a otro problema después, que es ImportError: no se puede importar el nombre 'soft_unicode' de 'markupsafe' en la versión 1.38.0 #3661 , y eso se puede solucionar degradando el markupsafe a la versión 2.0.1 como se muestra a continuación.

 pip install Flask==1.1.4 pip install markupsafe==2.0.1

Referencia - [Resuelto] ImportError: no se puede importar el nombre 'json' de itsdangerous

almost 4 years ago · Santiago Trujillo Report

0

Acabo de poner itsdangerous==2.0.1 en mis requisitos.txt. Luego actualicé mi entorno virtual usando pip install -r requirements.txt y luego docker-compose up --build . Ahora todo bien para mí. No actualicé la versión del matraz.

almost 4 years ago · Santiago Trujillo Report

0

Ejecutar pip install itsdangerous==2.0.1 en mi entorno virtual funcionó para mí. Nota: estoy usando en mi máquina con Windows 10

almost 4 years ago · Santiago Trujillo Report

0

Este hilo también fue útil para mí.

marcado seguro no lo balanceó del todo.

Itisdangerous=2.0.1 fue el quinto en la lista de mis requisitos, restauré el archivo de pasajeros, ¡y navegué sin problemas desde allí!

almost 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!