2014-08-30 5 views
4

Я пытаюсь использовать PyInstaller v2.1 для создания одного исполняемого файла из простого сценария hello world (Python 2.7). Сценарий, hello.py, имеет только одну строку:PyInstaller newbie: hello world

print 'Hello, World!' 

Я затем открыть окно командной строки в папке, содержащей сценарий и введите:

pyinstaller -F hello.py 

я получаю следующий результат:

C:\Users\chris\workspace\HelloPy>pyinstaller -F hello.py 
43 INFO: wrote C:\Users\chris\workspace\HelloPy\hello.spec 
66 INFO: Testing for ability to set icons, version resources... 
79 INFO: ... resource update available 
83 INFO: UPX is not available. 
115 INFO: Processing hook hook-os 
299 INFO: Processing hook hook-time 
304 INFO: Processing hook hook-cPickle 
402 INFO: Processing hook hook-_sre 
585 INFO: Processing hook hook-cStringIO 
721 INFO: Processing hook hook-encodings 
741 INFO: Processing hook hook-codecs 
1332 INFO: Extending PYTHONPATH with C:\Users\chris\workspace\HelloPy 
1332 INFO: checking Analysis 
1539 INFO: checking PYZ 
1644 INFO: checking PKG 
1655 INFO: building because C:\Users\chris\workspace\HelloPy\build\hello\hello.exe.manifest changed 
1656 INFO: building PKG (CArchive) out00-PKG.pkg 
7801 INFO: checking EXE 
7803 INFO: rebuilding out00-EXE.toc because pkg is more recent 
7803 INFO: building EXE from out00-EXE.toc 
7809 INFO: Appending archive to EXE C:\Users\chris\workspace\HelloPy\dist\hello.exe 

Папка build и dist создается, как ожидалось, так же, как и исполняемый файл. Я стараюсь, чтобы запустить его и получить следующий вывод:

C:\Users\chris\workspace\HelloPy>cd dist 

C:\Users\chris\workspace\HelloPy\dist>hello 
WARNING: file already exists but should not:  C:\Users\chris\AppData\Local\Temp\_MEI58962\include\pyconfig.h 
Hello, World! 

Если я бегу pyinstaller вместо без единого исполняемого переключателя, т.е. без -F, то я не получаю «ПРЕДУПРЕЖДЕНИЕ: файл уже существует»

Я, вероятно, пропустил что-то действительно очевидное, но я искал вокруг и не могу найти эту проблему нигде. Любая помощь или указатель на решение в другом месте будут высоко оценены.

ответ

1

Был билет сообщил команде here PyInstaller, что указывает на это ТАК ответить, как обходной путь: Pyinstaller --onefile warning pyconfig.h when importing scipy or scipy.signal

Вы измените файл спецификаций со следующим блоком под a=Analysis линии:

for d in a.datas: 
    if 'pyconfig' in d[0]: 
     a.datas.remove(d) 
     break 

Это должно сработать для вас, поскольку оно работает для большинства.

Лично я предпочитаю py2exe. Вот ссылка на пример «Привет, мир», чтобы сделать то же самое, чего вы пытаетесь достичь: http://www.py2exe.org/index.cgi/Tutorial