Ich habe dieses Setup:imp.load_source eine andere Datei als Py, aber ein Py gibt es auch in diesem Verzeichnis
Datei: a.ext1 a.py
a.ext1 ein lädt. py aus irgendeinem Grund, aber als Engine muss ich Datei a.ext1 laden.
Ich kann es in Py3 gut funktionieren, aber ich kann es nicht in Py2 arbeiten.
Hier ist meine Python2 Versuch: ** Dies ist der Hauptfluss, natürlich gibt es mehr Code um ihn herum.
file = os.path.abspath(os.path.expanduser('a.ext1')
directory = os.path.dirname(file)
sys.path.append(directory)
fullname = 'my.name.space.a'
sys.modules['my.name.space'] = imp.new_module('my.name.space')
x = imp.load_source(fullname,file)
Jetzt, wenn ich es tue; x, wird es mir sagen:
module 'my.name.space' from '<path>/a.ext1'
aber wenn ich mich (x) zu tun, es gibt mir die Sachen aus a.py. Ich möchte, dass es mir die Sachen aus einer Datei von .ext1 gibt.
Wie kann ich das auf Py2 arbeiten?
Hier ist, wie es auf py3 funktioniert:
file = os.path.abspath(os.path.expanduser('a.ext1'))
directory = os.path.dirname(file)
sys.path.append(directory)
fullname = 'my.name.space.a'
loader = importlib.machinery.SourceFileLoader(fullname = fullname,
path = file)
x = loader.load_module()
Jetzt x genau ist, was ich will, die a.ext1-Datei und nicht die Py
Jede Idee, wie ich diese Arbeit bekommen kann für py2?
(BTW habe ich alle gelesen ich zu diesem Thema auf Stack-Überlauf finden konnte, aber es war nie der Fall, wo ein Py auch bestanden)