Wenn die Lösung von SingleLenegationLimination nicht funktioniert, seien Sie sich bewusst, dass Sie nicht alle 33 Instanzen des Imports ersetzen müssen. Sie müssen nur sys.path
ändern an den Einstiegspunkten; z.B. Sie können nur auf das __init__.py
Ihres Moduls abzielen Dateien.
Dort würden Sie z.B.
import sys
sys.path.insert(0, DIR)
Eine bessere Version von Option B. wäre,
zu ersetzenimport twisted
von
import pkg_resources
pkg_resources.require("Twisted==8.2.0")
import twisted
Dies wird dafür sorgen, dass die richtige Version von Twisted importiert wird, solange sie installiert ist, und ansonsten eine Ausnahme aufwirft. Dies ist eine tragbarere Lösung.
Dies funktioniert jedoch nicht (noch würde eine andere Variaton von Option B), wenn Twisted vor dem pkg_resources.require
importiert wird wird angerufen; twisted
wird bereits in sys.modules
sein
OP bearbeiten :Kleinere Syntaxkorrektur, pro pkg_resources
Dokumente