我试图使用PyInstaller v2.1从简单的hello world脚本(Python 2.7)创建单个可执行文件。脚本hello.py只有一行:
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,那么我就不会得到"警告:文件已经存在"
我可能遗漏了一些非常明显的东西,但我已经四处寻找,似乎无法在其他任何地方找到这个问题。任何帮助或指向其他地方解决方案的指针都将非常感激。
答案 0 :(得分:1)
向PyInstaller团队here报告了一张票,指出这个SO答案作为解决方法: Pyinstaller --onefile warning pyconfig.h when importing scipy or scipy.signal
使用a=Analysis
行下的以下块修改spec文件:
for d in a.datas:
if 'pyconfig' in d[0]:
a.datas.remove(d)
break
这应该适合你,因为它似乎适用于大多数人。
我个人更喜欢py2exe。这是一个" Hello,World"的链接。例如,你想要达到的目标完全相同:http://www.py2exe.org/index.cgi/Tutorial