簡體   English   中英

py2exe創建的可執行文件中的問題

[英]problem in executable created with py2exe

我有一個使用python編寫的應用程序,該應用程序使用pygtk構建了GUI,還包括一些林間空地文件用於窗口構建。

我的問題是,當我從cmd運行它時,我的應用程序運行良好,但是當我使用py2exe創建一個exe時,該應用程序無法啟動,但是會創建一個空的日志文件,該文件是我在應用程序中編寫的日志文件。

我的setup.py看起來像:

from distutils.core import setup
import os
import pygtk
import py2exe

setup(
name = 'ABC',
description = 'blah blah blah',
author = 'XYZ',
version = '0.1',

windows = [
              {
                  'script': 'filename.py',
                  'icon_resources': [(1, "logo.ico")],
              }
          ],


options = {
              'py2exe': {
                  'packages':'encodings',
                  'includes': 'cairo, pango, pangocairo, atk, gobject,gio',
              }
          },
data_files=[
               'logo.png', 'bg.png', 'completed.png', 'down.png','up.png',
               'processing.gif', 'cygcrypto-0.9.8.dll', 'cyggcc_s-1.dll', 
               'cygiconv-2.dll', 'cygpopt-0.dll', 'cygssp-0.dll', 'cygwin1.dll',
               'cygz.dll', 'prog.exe','prog2.exe', 'prog3.exe',
               'Login.glade', 'settings_lib.glade', 
               'Microsoft.VC90.CRT.manifest', 'msvcm90.dll','etc.zip',
               'lib.zip', 'msvcp90.dll', 'msvcr90.dll', 'share.zip'
           ])  

可能是什么問題呢?

使用諸如py2exe和py2app之類的工具時,我也遇到過類似的問題。

IIRC,很多情況是由於雙擊.exe時Python進程的工作目錄有很大不同。 您可能想要在日志記錄os.getcwd()值的Python程序的啟動中添加一些代碼。

另一個棘手的問題是,您必須確保py2exe捆綁在程序正在使用的所有Python模塊中。 從命令行運行時,您使用的是具有所有這些模塊的Python。 雙擊.exe時,您使用的是捆綁在可執行文件中的Python以及在setup.py顯式列出的模塊-很容易錯過一個模塊。 為了找到這個,您可以在ImportError周圍放置try / except子句,然后將ImportError異常記錄到文件中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM