2010-09-23 39 views
1

我的python作为嵌入式脚本环境在我的应用程序中。我用我的应用程序提供了python位(python26.dll,DLLs & Lib文件夹)。所有这些都是为了避免让用户安装python(你知道它是如何在大公司中)。pywin32俘虏安装(避免py * .dll获取安装在system32目录中)

所有的作品很好,除了pywin32。它将pythoncom26.dll和pywintypes26.dll安装到system32目录中。我想将这些DLL保存在我的Python目录中。一种选择是将我的Python目录添加到PATH env变量中。但是由于显而易见的原因(Windows DLL搜索路径优先级问题)想避免它。

有没有办法告诉Windows(一个Windows API也行)看我的目录加载这些pywin32 DLL?从我所了解的这些dll被Windows COM调用。

谢谢。

编辑1: 请注意,python部署嵌入式与我的应用程序。

+0

为什么不冻结(http://cx-freeze.sourceforge.net/)你的脚本到一个可执行文件中,从而绕过了你所需要的所有dll操作? – katrielalex 2010-09-23 19:52:00

+0

不。我的应用程序不是python脚本。它是一个具有自己的exe和dll的GUI应用程序。 Python允许自定义,并通过pywin32作为此C++应用程序和excel之间的粘合剂。 – sambha 2010-09-23 20:03:32

+0

为什么会出现这样的问题......你能不能先写下你需要的所有Python脚本,'cx_freeze'它们全部用于分发,并在需要时调用生成的可执行文件?例如,假设你有一个Python脚本,它将当前的'foo'保存到一个电子表格中,称为“spreadsheeter.py'。然后将其冻结到'spreadsheeter.exe'中,然后每当你想保存到Excel时调用*。 – katrielalex 2010-09-23 20:07:54

回答

0

我以前使用py2exe来冻结应用程序和所有的DLL。然后使用Innosetup创建一个安装程序。像魅力一样工作。

+0

不,我的应用程序不是python脚本,而是一个exe(gui应用程序) – sambha 2010-09-23 20:05:30

+0

我不认为这应该是一个问题。也许你需要添加stub作为py2exe的入口点。它只是找到所有的脚本和二进制依赖关系,并将它们放在一起,以便可以分发它。 – 2010-09-23 20:17:07