1
from distutils.core import setup
import py2exe,sys,os
sys.argv.append('py2exe')
try:
setup(
options = {'py2exe': {'bundle_files': 1}},
console=['my_console_script.py'],
zipfile = None,
)
except Exception, e:
print e
> running py2exe
> *** searching for required modules ***
> *** parsing results ***
> *** finding dlls needed *** Traceback (most recent call last): File
> "C:\scripts\download_ghost_recon\setup.py",
> line 26, in <module>
> zipfile = None, File "C:\Python26\lib\distutils\core.py",
> line 162, in setup
> raise SystemExit, error SystemExit: error: MSVCR80.dll: No
> such file or directory
我對蟒蛇2.6在Windows 7
所以,我怎樣才能使這個MSVCR80.DLL錯誤消失,並編譯我的腳本?
在其他腳本上,我可以運行相同的setup.py並且不會收到此錯誤。
這讓我覺得,在這個腳本,py2exe需要這個MSVCR80.DLL
我也試過這個代碼,我發現這裏: http://www.py2exe.org/index.cgi/OverridingCriteraForIncludingDlls 但它也沒有工作。
from distutils.core import setup
import py2exe,sys,os
origIsSystemDLL = py2exe.build_exe.isSystemDLL
def isSystemDLL(pathname):
if os.path.basename(pathname).lower() in ("msvcp71.dll", "dwmapi.dll"):
return 0
return origIsSystemDLL(pathname)
py2exe.build_exe.isSystemDLL = isSystemDLL
sys.argv.append('py2exe')
try:
setup(
options = {'py2exe': {'bundle_files': 1}},
console=['my_console_script.py'],
zipfile = None,
)
except Exception, e:
print e
*編輯 我也運行了這個文件在我的電腦上搜索,它是在這些位置發現:
C:\Windows\winsxs\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.762_none_10b2f55f9bffb8f8
C:\Windows\winsxs\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4053_none_d08d7da0442a985d
C:\Windows\winsxs\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4927_none_d08a205e442db5b5
我很困惑..你想讓我包含這些文件,但是在你編寫的代碼中有'dll_exludes'。不管怎麼說,這次編譯沒有錯誤,但是當我啓動編譯的腳本時,它會出錯並閃爍在看到錯誤信息之前很快就可以了 – russo 2010-08-27 07:07:34
你必須告訴py2exe不要複製這些文件,然後你可以自己複製這些文件,應用程序很快就會消失,這是因爲應用程序找不到DLL它需要查看可重新分發的運行時下載:http://www.microsoft.com/downloads/details.aspx?FamilyId=32BC1BEE-A3F9-4C13-9C99-220B62A191EE並將這些DLL複製到您的應用程序目錄中。可能想要爲VS2008運行時庫執行相同的操作 – Ivo 2010-08-27 07:16:49
噢,所以你的意思是在腳本已經編譯完成之後複製它們,並將它們放在與編譯的應用程序相同的目錄中? 有沒有一種方法可以做到這一點,所以我最終需要的是一個EXE來運行該程序?我試圖結束一個單一的exe來運行prog。 – russo 2010-08-27 18:37:31