我想出瞭如何讓它工作。我將我的「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的情況下做一件有用的事情!