2012-09-20 65 views
8

編譯,這是我非常簡單的代碼,印刷argvs:打印不工作時py2exe

import sys 

argv=sys.argv 
for each in sys.argv: 
    print each 

這裏跑,當輸出:我希望它被編譯

e:\python>python test1.py 1 2 3 4 5 
test1.py 
1 
2 
3 
4 
5 

,所以我做了一個與py2exe:

e:\python>python setup.py py2exe 

和我的setup.py:

from distutils.core import setup 
import py2exe, sys, os 

sys.argv.append('py2exe') 

setup(
    options = {'py2exe': {'bundle_files': 3}}, 
    windows = [{'script': "test1.py"}], 
    zipfile = None, 
) 

,當我通過test1.exe 1 2 3 4 5或與任何其他argvs運行我的程序我沒有得到任何輸出。 sys.argvs應該與它的至少一個對象(test1.exe)的列表,所以我想我有蟒蛇的打印功能的誤解。 有什麼我在這裏做錯了嗎?我只想把一切都打印到命令行。我從Linux編程,但Windows用戶應該使用我的程序。

非常感謝你

回答

10
# ... 
windows = [{'script': "test1.py"}], 
#... 

windows選項用於創建GUI的可執行文件,從而抑制控制檯輸出。使用console代替:

from distutils.core import setup 
import py2exe, sys, os 

sys.argv.append('py2exe') 

setup(
    options = {'py2exe': {'bundle_files': 3}}, 
    console = [{'script': "test1.py"}], 
    zipfile = None, 
)