我正在使用cx_freeze
生成一個簡單的PyQt應用程序與python 3.2 x86在64位Windows下的exe。cx_freeze從錯誤的位置複製DLL
的問題是,雖然cx_freeze
拷貝所有的依賴完全沒有在一起,但由於一些奇怪的原因,不從我的Python使用QtCore4.dll
安裝,而是執行以下操作:
copying D:\Python\Python 3.2 x86\lib\site-packages\PyQt4\QtCore.pyd -> build\exe.win32-3.2\PyQt4.QtCore.pyd
copying C:\Program Files\MiKTeX 2.9\miktex\bin\x64\QtCore4.dll (!!) -> build\exe.win32-3.2\QtCore4.dll
現在ISN如果我創建64位版本(儘管仍然不完美),那麼問題不大,但顯然64位DLL不適用於我的32位exe。那麼,如何讓cx_freeze
停止在我的系統路徑中查找dll,而是讓它在我的控制中搜索sys.path
或其他路徑?
我試過將path
選項明確設置爲sys.path
,但無濟於事。
你試過了哪個路徑相關的命令行選項?另外,是否在運行腳本之前嘗試修改命令行中的PATH環境變量('SET PATH = C:\ python32 ...')? –
@Jesse只是'build_exe'的''path'選項,但這似乎只對python文件而不是dll很重要。如果我從系統路徑中刪除了'MikTeX'安裝,它會使用正確的dll(是的,這是我當前的解決方法),但我更喜歡不涉及這種攻擊的解決方案。 – Voo