2014-01-05 8 views
6

Ich stieß in unserem Projekt auf eine Datei namens - warten Sie darauf - sellery.py. Ja, und celery.py Einfuhren aus der installierten Sellerie-Modul (siehe http://www.celeryproject.org/), das ist kein Problem, weil die celery.py ProjektModulname Konflikt in Python, wie zu lösen?

from __future__ import absolute_import  

verwendet, bevor sie aus dem installierten Sellerie Modul importieren. Nun, das Problem kommt von Djcelery (Django-Sellerie), die auch gerne aus Sellerie importieren würde (das installierte, nicht das Projekt sellery.py). Dies ist, wo der Zusammenstoß kommt, weil djcellery die sellery.py des Projektes trifft, bevor es den installierten Sellerie trifft. Wie kann ich das beheben?

Antwort

3

Der einfachste und vernünftigste Weg ist es, Ihr Projekt zu refaktorieren und den Namen der Datei zu ändern.

Es gibt wahrscheinlich einen seltsamen Weg, aber ich würde es kaum wert sein, da es wahrscheinlich Ihren Code verkomplizieren würde und es anfällig für Fehler machen würde.

1

Als @Chirila Alexandru said, nur umbenennen Sie das Modul.

könnte Sie auch:

  • from __future__ import absolute_import am Anfang der Datei hinzufügen, die celery (importieren Sie Ihre celery.py stattdessen könnten Sie from project.your_app import celery verwenden) importiert
  • explizite Verwendung relativ Import, Ihre celery.py zu importieren: from . import celery
Verwandte Themen