我想出了如何让它工作。我将我的“head”框架文件放在setup.py文件的“includes”列表中。然后,我有一个使用imp模块动态加载常规Python脚本的compliled runner,并且这些脚本会调用该头文件。这正是那种隐藏的框架,但我一直在寻找API。
例如,假设我们有一个名为“framework”的目录,其中包含所有API调用的主文件“foo”。 py2exe设置中的行。PY文件应该是这样的:
includes = ['framework.foo', 'some_other_module', 'etc']
我那么做这个亚军脚本的目标:
FrameworkTarget = Target(
# what to build
script = "run_framework.py",
dest_base = "run_framework"
)
然后在setup.py脚本中的目标添加到设置()命令的其他中事情:
console = [FrameworkTarget],
编译亚军脚本传递命令行的“测试套件”脚本的名称:
test_suite_name = sys.argv[1]
file_name = test_suite_name + ".py"
path_name = os.path.join(os.getcwd(), file_name)
print "Loading source %s at %s"%(file_name, path_name)
module = imp.load_source(file_name, path_name)
然后,由imp.load_source()命令调用的文件中,我有这样的:
import framework.foo
当我没有在我的包括“framework.foo”,它找不到framework.foo的编译版本。也许有人会在未来发现它有用。我不知道我是否可以在没有Stackoverflow的情况下做一件有用的事情!