2010-07-29 41 views
0

任何人都可以得到pyAA與py2exe? pyAA可以下載herepyAA與py2exe

我試圖在最近2天內做到這一點,直到現在我無法達成解決方案。該示例文件等給出如下:

hello.py

import pyAA 
print "Hello, World" 

setup.py

from distutils.core import setup 
import py2exe 

setup(console=['hello.py'], 
     options = {"py2exe": {"bundle_files": 1}}) 

現在,如果我們運行:創建

python setup.py py2exe 

可執行文件。但運行它提供了以下錯誤:

Traceback (most recent call last): 
File "hello.py", line 1, in ? 
    File "zipextimporter.pyc", line 82, in load_module 
    File "pyAA\__init__.pyc", line 1, in ? 
    File "zipextimporter.pyc", line 82, in load_module 
    File "pyAA\AA.pyc", line 8, in ? 
    File "zipextimporter.pyc", line 82, in load_module 
    File "pyAA\pyAAc.pyc", line 5, in ? 
    File "zipextimporter.pyc", line 98, in load_module 
ImportError: MemoryLoadLibrary failed loading pyAA\_pyAAc.pyd 

我嘗試使用dependency walker但我無法做出同樣的太多的感覺。我試圖添加/刪除一些DLL,但無濟於事。

p.s - >請注意,沒有bundle_files,它是完美的工作。但是項目的其中一項要求意味着bundle_file是必需的。

+0

什麼是pyAA,請在您的問題中澄清一下? – 2010-07-29 20:46:51

回答

2

這個事情的王者似乎是py2exe的常見問題。也許嘗試使用另一個安裝程序,如PyInstaller

0

當我安裝pyAA和運行取決於_pyAAc.pyd,它告訴我,我缺少IESHIMS.DLL,儘管這可能是因爲我在Windows 7

+0

我在OP中提到的其中一個DLL是IESHIMS.DLL。我試圖添加在相同的文件夾等,但無濟於事。有沒有解決辦法? – Koran 2010-08-01 03:34:31

0

_pyAAc.pyd是一個DLL,我認爲這些必須直接從文件系統中加載(而不是從內存緩衝區或歸檔文件中加載)。

如果需要一個文件解決方案,您可以自己捆綁工作的非捆綁py2exe結果,將自身解包到TEMP並從那裏運行。我懷疑一些自我提取的存檔製作者可以爲你做這個技巧,而不需要你的任何編碼。

+0

我會試試這個。現在,我能夠使用pyInstaller工作。 – Koran 2010-08-03 05:27:27

0

與Py2Exe一起戰鬥了幾次,綁定DLL依賴通常會導致頭痛。如果我的內存正確地爲我服務,請嘗試將sys.exec_prefix添加到PATH環境變量。這應該允許程序找到IESHIMS.DLL

os.environ['PATH'] = os.sep.join([sys.exec_prefix, os.environ['PATH']]) 
+0

我試過這個,但無濟於事。我懷疑這是由於IESHIMS.DLL,因爲我已經嘗試了將近2/3天。 – Koran 2010-08-03 05:26:55