2012-09-20 66 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, 
)