2010-09-23 73 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