Исполняемый файл py2exe не использует sys.argv [x] - PullRequest
2 голосов
/ 29 июля 2011

Я написал очень простой код на python и сгенерировал один .exe с py2exe.

Я добавил импорт, чтобы увидеть, есть ли проблемы с импортом этих модулей.

import sys
import time, os, httplib2
from csv import writer, reader, DictWriter
from BeautifulSoup import BeautifulSoup

def main():
    print sys.argv[1]

if __name__ == '__main__':
    main()

когда я запускаю его как файл .py, он прекрасно работает.

C: \ Users \ Пользователь> C: \ Python27 \ Lib \ site-packages \ py2exe \ samples \ sysargv \ module3.py justChecking justChecking

, но когда я запускаю сгенерированный исполняемый файл py2exe, он ничего не делает -

C: \ Users \ User> C: \ Python27 \ Lib \ site-packages \ py2exe \ samples \ sysargv \ dist \ module3.exe JustCheking

это код setup.py

from distutils.core import setup
import py2exe

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

Мне нужно использовать sys.argv в моемпрограмма (я получаю данные от пользователя, такие как каталог вывода, путь к файлу журнала и т. д.)

как использовать sys.argv при использовании py2exe для создания одного исполняемого файла?

другоговопрос, если у меня установлен 32-битный Python 2.7 на 64-битном компьютере win7 (я установил msi-файл регулярный win '2.7.2 из python.org ) и сгенерировал на этом компьютере один исполняемый файл, смогу ли я использовать .exe на win7 \ xp 32 bit?

Спасибо

1 Ответ

2 голосов
/ 29 июля 2011

Полагаю, вы используете опцию windows вместо консольной. Это используется для графических приложений. Если опция GUI работает, то, вероятно, появится новый терминал, который сразу же закроется, как только ваша программа будет выполнена.

Вы должны быть в состоянии скомпилировать его в Windows 7 с 32-битным Python и использовать его на любой другой 32-битной машине.

...