我有一个已编译的Python文件path/program.pyc
。
我想用我当前的globals()
和locals()
执行它。我试过了:
with open('path/program.pyc','rb') as f:
code = f.read()
exec(code, globals(), locals())
更具体地说,我想要的是:
a.py :
a = 1
# somehow run b.pyc
b.py :
print(a)
当我运行a.py
时,我希望看到输出:1
。
实际上execfile()
完全符合我的要求,但它仅适用于.py
个文件而非.pyc
个文件。我正在寻找适用于execfile()
个文件的.pyc
版本。
答案 0 :(得分:-3)
使用__import__
https://docs.python.org/2/library/functions.html#import
请注意,您需要使用标准的python包表示法而不是路径,并且需要确保您的文件位于sys.path
__import__('path.program', globals(), locals())
之类的东西可以解决问题。