1
votes

Aucun module nommé Erreur Order_dict pour le client d'importation twilio.rest

aks.py:

Traceback (most recent call last):
  File "aks.py", line 10, in <module>
    from twilio.rest import Client
  File "/usr/local/lib/python2.7/dist-packages/twilio/rest/__init__.py", line 14, in <module>
    from twilio.http.http_client import TwilioHttpClient
  File "/usr/local/lib/python2.7/dist-packages/twilio/http/http_client.py", line 1, in <module>
    from requests import Request, Session, hooks
  File "/usr/lib/python2.7/dist-packages/requests/__init__.py", line 63, in <module>
    from . import utils
  File "/usr/lib/python2.7/dist-packages/requests/utils.py", line 24, in <module>
    from ._internal_utils import to_native_string
  File "/usr/lib/python2.7/dist-packages/requests/_internal_utils.py", line 11, in <module>
    from .compat import is_py2, builtin_str, str
  File "/usr/lib/python2.7/dist-packages/requests/compat.py", line 46, in <module>
    from .packages.urllib3.packages.ordered_dict import OrderedDict
ImportError: No module named ordered_dict

Lorsque j'exécute le code ci-dessus, j'obtiens l'erreur:

from twilio.rest import Client

J'ai essayé diverses choses comme la dégradation d'Urllib en 1.23, uninstal, réinstaller twilio et sudo -H pip2.7 install twilio

  • version python: Python 2.7.13
  • version de pip: pip 18.1 de /usr/local/lib/python3.5/dist-packages/pip (python 3.5)
  • Système d'exploitation: Raspbian Stretch


5 commentaires

La version de pip que vous utilisez est pour python 3.5 alors que vous essayez d'exécuter votre code avec python 2.7, pourquoi?


J'essayais juste tout ce que je pouvais, car ce problème m'ennuyait trop.


Cela a été résolu auparavant avec cela, mais depuis aujourd'hui matin, il ne cesse de répéter l'erreur.


Je pense que votre problème pourrait être le même que: stackoverflow.com/questions/35180322/...


Ces solutions n'ont pas fonctionné pour moi


3 Réponses :


0
votes

Je l'ai résolu en créant un environnement virtuel de python 3 et cela fonctionne correctement. Je pense que pour une raison quelconque, twilio ne fonctionne pas correctement sur python 2.7


3 commentaires

Je pense que si vous aviez installé twilio avec pip de Python 2.7, cela aurait fonctionné. Je soupçonne que l'installation à l'aide de pip à partir de Python 3.5 s'installe à un emplacement différent à partir duquel votre installation Python 2.7 s'exécute,


J'ai essayé de l'installer avec pip 2.7 comme en question mais cela a donné l'erreur ci-dessus


J'ai constaté qu'avoir un virtualenv en Python aide avec les dépendances installées quelle que soit la version. Il est probablement préférable de le faire fonctionner avec Python 3, mais je pense que la bibliothèque prend toujours en charge Python 2.



0
votes

Une de mes dépendances de projet " google-endpoints ", dépend de " Google Endpoints API Management ", qui dépend des requêtes et des requêtes dépend de urllib3, cependant le post installé urllib3 == 1.24 n'est pas pris en charge par les requêtes.

Ce problème peut être résolu en installant la version stable précédente de urllib3:

pip install urllib3==1.23


0 commentaires

0
votes

INSTALLED_APPS = [ 'django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','orders','products', 'profiles', ] J'ai le même problème. Veuillez aller vérifier les paramètres des applications installées. météo votre application existe dans la partie paramètres


2 commentaires

Pourriez-vous détailler les étapes nécessaires pour vérifier et / ou le résultat / contenu attendu et comment cela résout la question du PO?


Ici, il importe des fichiers d'une autre classe ou d'un autre fichier. Ce qu'il a fait, c'est qu'il doit ajouter le nom de l'application dans les paramètres. Dans ce cas, la bibliothèque qu'il appelle "OrderdDict" doit être comprise par system.from .packages.urllib3.packages.ordered_dict import OrderedDict. Le système ne peut pas appeler cette bibliothèque. Il doit accéder au fichier de paramètres et apporter des modifications en conséquence. Il doit appeler le client dans les paramètres.