Ho questa messa a punto:imp.load_source un altro file di .py, ma un .py esistono anche in quella directory
File: a.ext1 a.py
a.ext1 carica un. py per qualche motivo, ma come motore ho bisogno di caricare il file a.ext1.
Posso farlo funzionare bene in py3, ma non riesco a farlo funzionare in py2.
Ecco il mio tentativo python2: ** Questo è il flusso principale, ovviamente c'è più codice attorno ad esso.
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)
Ora, se lo faccio; x, essa mi dirà:
module 'my.name.space' from '<path>/a.ext1'
ma se lo faccio dir (x), mi dà la roba da a.py. Voglio che mi dia le cose da un file .ext1.
Come posso farlo funzionare su py2?
Ecco come funziona su PY3:
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()
ora x è esattamente quello che voglio, il file a.ext1, e non il .py
Qualsiasi idea di come posso ottenere questo lavoro per py2?
(Btw ho letto tutto quello che ho potuto trovare su questo argomento su Stack Overflow, ma non è mai il caso in cui un .py anche esistito)