8

これは私の非常に単純なコードで、argv を出力します:

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 または他の argv を使用してプログラムを実行しても、出力が得られません。sys.argvs は少なくとも 1 つのオブジェクト (test1.exe) を含むリストである必要があるため、Python の印刷機能について誤解があると思います。ここで私が間違っていることはありますか?すべてをコマンドラインに出力したいだけです。私は Linux からプログラミングしていますが、Windows ユーザーは私のプログラムを使用する必要があります。

どうもありがとうございます

4

1 に答える 1

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,
)
于 2012-09-20T03:16:13.553 に答える