导入嵌入在可执行文件的Python API中的模块?

时间:2013-12-20 15:30:36

标签: python

我有一个提供了很好的Python API(Python3,FWIW)的应用程序。使用它的GUI我可以触发Python脚本或使用它的Python shell。在我运行的脚本中,我可以导入供应商提供的Foo模块。我想做的是从独立的Python会话中导入Foo。这可能吗? (或者它取决于它是如何实现的?)

我查看了他们提供的交互式shell中的sys.path,但没有看到任何相关内容。

当应用程序产生Python解释器时,它是否以某种方式向其中注入一个无法从独立的Python解释器访问的模块,或者是否有办法告诉我的Python解释器在里面找到Foo应用程序的可执行文件?

为了它的价值:

>>> Foo
<module 'Foo' (built-in)>
>>>

1 个答案:

答案 0 :(得分:2)

无法保证应用程序中可用的模块可以导入独立脚本,尤其是在API提供与正在运行的应用程序交互的工具时。它很可能是Python解释器嵌入应用程序的方式所提供的。有关如何完成此操作,请参阅embedding Python上的文档。

那就是说,看看是否可以在应用程序文件中的某个位置找到.pyd文件(在Windows上)或.so文件(在Unices上)是值得的 - 有可能是某些功能它提供的可以在没有运行的应用程序的情况下工作。