Même après la réponse de @Mickey Perlstein et ses 3 heures de travail de détective, il m'a fallu encore quelques minutes pour appliquer cela à mon propre désordre. Au cas où quelqu'un d'autre serait comme moi et aurait besoin d'un peu plus d'aide, voici ce qui se passait dans ma situation.
- réponses est un module
- La réponse est une classe de base dans le module de réponses
- GeoJsonResponse est une nouvelle classe dérivée de Response
Classe GeoJsonResponse initiale:
from pyexample.responses import Response
class GeoJsonResponse(Response):
def __init__(self, geo_json_data):
Semble bien. Aucun problème jusqu'à ce que vous essayiez de déboguer le problème, c'est-à-dire lorsque vous obtenez un tas de messages d'erreur apparemment vagues comme celui-ci:
from pyexample.responses import GeoJsonResponse .. \ pyexample \ answers \ GeoJsonResponse.py: 12: dans la classe (module) GeoJsonResponse (Response):
E TypeError: module () prend au plus 2 arguments (3 donnés)
==================================== ERREURS ============== =======================
___________________ ERREUR lors de la collecte des tests / test_geojson.py ____________________
test_geojson.py:2: in (module) from pyexample.responses import GeoJsonResponse .. \ pyexample \ answers \ GeoJsonResponse.py: 12: in (module)
class GeoJsonResponse (Response): E TypeError: module () prend au plus 2 arguments (3 donnés)
ERREUR: introuvable: \ PyExample \ tests \ test_geojson.py :: TestGeoJson :: test_api_response
C: \ Python37 \ lib \ site-packages \ aenum__init __. Py: 163
(pas de nom 'PyExample \ tests \ test_geojson.py :: TestGeoJson :: test_api_response' dans l'un des [])
Les erreurs faisaient de leur mieux pour me diriger dans la bonne direction, et la réponse de @Mickey Perlstein était morte, il ne m'a fallu qu'une minute pour tout mettre en place dans mon propre contexte:
J'importais le module :
from pyexample.responses import Response
quand j'aurais dû importer la classe :
from pyexample.responses.Response import Response
J'espère que cela aide quelqu'un. (Pour ma défense, il est encore assez tôt.)