Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

385
Views
error de importación 'force_text' de 'django.utils.encoding'

Estoy implementando una solución de graphql usando python, graphene y django y recibo el siguiente error de importación:

 Result: Failure Exception: ImportError: cannot import name 'force_text' from 'django.utils.encoding' "/home/site/wwwroot/.python_packages/lib/site-packages/graphene_django/utils/utils.py", line 6, in <module> from django.utils.encoding import force_text

No estoy seguro de las versiones y si necesito importar un módulo adicional. Mi requisitos.txt es como:

 graphene>=2.1,<3 graphene-django>=2.1,<3 graphql-core>=2.1,<3 graphql-relay==2.0.1 django-filter>=2

¿Alguien ha tenido un problema similar y puede mirar las versiones que uso? Gracias

over 4 years ago · Santiago Trujillo
5 answers
Answer question

0

En la versión 4 de Django> simplemente pegue este fragmento en su settinsg.py. Preferiblemente en la parte superior

 import django from django.utils.encoding import force_str django.utils.encoding.force_text = force_str
over 4 years ago · Santiago Trujillo Report

0

Basado en la respuesta dada por @Osman.

El problema parece estar ocurriendo con Django-4. Hasta que el PR se fusione, probablemente este parche mono podría funcionar (no probado en producción):

 import django from django.utils.encoding import force_str django.utils.encoding.force_text = force_str

Pon esto en el archivo de entrada. Lo guardé en settings.py por el momento.

over 4 years ago · Santiago Trujillo Report

0

"force_text" se elimina de Django 4.0 :

Características eliminadas en 4.0

Pero graphene_django todavía usa "force_text" en utils.py .

utils.py:

 from django.utils.encoding import force_text # Line 6 s = force_text(s) # Line 29

Por lo tanto, debe reemplazar "force_text" con "force_str" como se muestra a continuación:

utils.py:

 from django.utils.encoding import force_str# Line 6 s = force_str(s) # Line 29

Estas son las rutas a utils.py para Linux y Windows :

Linux:

<your_venv>/lib/<python_version>/site-packages/graphene_django/utils/utils.py

Ventanas:

<su_venv>/lib/site-packages/graphene_django/utils/utils.py

over 4 years ago · Santiago Trujillo Report

0

en django 4.0 no tenemos force_text

https://docs.djangoproject.com/en/4.0/ref/utils/#module-django.utils.encoding

en su lugar, cambie force_text a force_str

linux:

YOUR_VENV/lib/PYTHON_VERSION/site-packages/graphene_django/utils/utils.py

ventanas:

YOUR_VENV/lib/site-packages/graphene_django/utils/utils.py

 from django.utils.encoding import force_text

para

 from django.utils.encoding import force_str

y

 def _camelize_django_str(s): if isinstance(s, Promise): s = force_text(s) return to_camel_case(s) if isinstance(s, six.string_types) else s

para

 def _camelize_django_str(s): if isinstance(s, Promise): s = force_str(s) return to_camel_case(s) if isinstance(s, six.string_types) else s
over 4 years ago · Santiago Trujillo Report

0

agregando lo siguiente a los requisitos.txt lo resolvió:

 django<=3
over 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 Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!