tôi đã thiết lập này:imp.load_source một file hơn py, nhưng một py cũng tồn tại trong thư mục đó
File: a.ext1 a.py
a.ext1 tải một. py vì lý do nào đó, nhưng như một công cụ tôi cần để tải tập tin a.ext1.
Tôi có thể làm cho nó hoạt động tốt trong py3, nhưng tôi không thể làm cho nó hoạt động trong py2.
Đây là nỗ lực python2 của tôi: ** Đây là luồng chính, tất nhiên có nhiều mã xung quanh nó.
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)
Bây giờ, nếu tôi làm; x, nó sẽ cho tôi biết:
module 'my.name.space' from '<path>/a.ext1'
nhưng nếu tôi làm dir (x), nó mang lại cho tôi những thứ từ a.py. Tôi muốn nó cho tôi những thứ từ tập tin a.ext1.
Tôi có thể làm việc này trên py2 như thế nào?
Sau đây là cách nó hoạt động trên 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()
Bây giờ x là chính xác những gì tôi muốn, tập tin a.ext1, và không phải là py
Bất kỳ ý tưởng làm thế nào tôi có thể làm việc này cho py2?
(Btw tôi đã đọc tất cả tôi có thể tìm về chủ đề này trên Stack tràn, nhưng nó chưa bao giờ là trường hợp một py cũng tồn tại)