关于python文件转化exe

f08865 2015-05-03 05:04:15
我用python写了好几个py文档,里面涉及了pyqt、numpy和matplotlib等

然后由于我想将其打包成一个exe让普通pc(没装py)都可以运行,然后就去查了很多资料,
找到了gui2exe这种工具(就是因为不知道如何将几个py文档打包成一个exe文件),按照要求安装了wxpython、py2exe。我使用的是64位的py27
最后运行gui2exe时,出现了这种问题

下面是里面详细:

#---- System Information ----#
GUI2Exe Version: 0.5.0
Operating System: Windows 7 (build 7601, Service Pack 1), 64-bit edition
Python Version: 2.7.9 (default, Dec 10 2014, 12:28:03) [MSC v.1500 64 bit (AMD64)]
wxPython Version: 3.0.2.0 msw (classic)
wxPython Info: (__WXMSW__, wxMSW, unicode, wx-assertions-on, SWIG-1.3.29)
Python Encoding: Default=mbcs File=mbcs
wxPython Encoding: utf-8
System Architecture: 64bit AMD64
Byte order: little
Frozen: False
#---- End System Information ----#

#---- Traceback Info ----#
*** 03 五月 2015 @ 16:59:53 ***
Traceback (most recent call last):
File "C:\Users\Tim\Desktop\GUI2Exe_0.5.0\GUI2Exe\GUI2Exe.py", line 4080, in <module>
app = GUI2ExeApp(0)
File "C:\Python27\lib\site-packages\wx-3.0-msw\wx\_core.py", line 8628, in __init__
self._BootstrapApp()
File "C:\Python27\lib\site-packages\wx-3.0-msw\wx\_core.py", line 8196, in _BootstrapApp
return _core_.PyApp__BootstrapApp(*args, **kwargs)
File "C:\Users\Tim\Desktop\GUI2Exe_0.5.0\GUI2Exe\GUI2Exe.py", line 3963, in OnInit
splash = GUI2ExeSplashScreen(self)
File "C:\Users\Tim\Desktop\GUI2Exe_0.5.0\GUI2Exe\GUI2Exe.py", line 3840, in __init__
bmp = catalog["gui2exe_splash"].GetBitmap()
File "C:\Python27\lib\site-packages\wx-3.0-msw\wx\lib\embeddedimage.py", line 48, in GetBitmap
return wx.BitmapFromImage(self.GetImage())
File "C:\Python27\lib\site-packages\wx-3.0-msw\wx\lib\embeddedimage.py", line 63, in GetImage
return wx.ImageFromStream(stream)
File "C:\Python27\lib\site-packages\wx-3.0-msw\wx\_core.py", line 3721, in ImageFromStream
val = _core_.new_ImageFromStream(*args, **kwargs)
PyAssertionError: C++ assertion "strcmp(setlocale(LC_ALL, NULL), "C") == 0" failed at ..\..\src\common\intl.cpp(1449) in wxLocale::GetInfo(): You probably called setlocale() directly instead of using wxLocale and now there is a mismatch between C/C++ and Windows locale.
Things are going to break, please only change locale by creating wxLocale objects to avoid this!

#---- End Traceback Info ----#
实在搞不懂,求助求助

...全文
881 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
那个秀才 2015-11-26
  • 打赏
  • 举报
回复
哈哈~ 在data_files中把stylelib目录加上就OK啦! 接下来,遇到都是module引入问题,sys.path增加路径,一一引入即可! i am hualingson, no thanks!
as 2015-10-22
  • 打赏
  • 举报
回复
后来呢?就这样了吗?
f08865 2015-05-04
  • 打赏
  • 举报
回复
引用 6 楼 panghuhu250 的回复:
py2exe使用python的distutils工具, 不能自动检测到import的文件, 需要自己设置. 这儿是setup.py文件文档 https://docs.python.org/2/distutils/setupscript.html 网上应该也能找到一些中文的关于setup.py教程.
最后来更新一次吧,在我的setup.py文件里面添加了 import matplotlib和import dateutil 然后问题暂时解决,然后去看了看出错文档 出现Could not find the matplotlib data files 接着再谷歌,在文档发现 # Save matplotlib-data to mpl-data ( It is located in the matplotlib\mpl-data # folder and the compiled programs will look for it in \mpl-data # note: using matplotlib.get_mpldata_info data_files = [(r'mpl-data', glob.glob(r'C:\Python25\Lib\site-packages\matplotlib\mpl-data\*.*')), # Because matplotlibrc does not have an extension, glob does not find it (at least I think that's why) # So add it manually here: (r'mpl-data', [r'C:\Python25\Lib\site-packages\matplotlib\mpl-data\matplotlibrc']), (r'mpl-data\images',glob.glob(r'C:\Python25\Lib\site-packages\matplotlib\mpl-data\images\*.*')), (r'mpl-data\fonts',glob.glob(r'C:\Python25\Lib\site-packages\matplotlib\mpl-data\fonts\*.*'))] # for console program use 'console = [{"script" : "scriptname.py"}] setup(windows=[{"script" : "scriptname.py"}], options=opts, data_files=data_files) 好的那就建立咯,最后,还是出现了错误 WindowsError: [Error 3] 系統: u'C:\\Python27\\dist\\mpl-data\\stylelib\\*.*' 至此,谷歌也帮不了我。 最后感谢这位大神的帮助,现在转战pyinstaller 谢谢
f08865 2015-05-03
  • 打赏
  • 举报
回复
引用 7 楼 f08865 的回复:
[quote=引用 6 楼 panghuhu250 的回复:] py2exe使用python的distutils工具, 不能自动检测到import的文件, 需要自己设置. 这儿是setup.py文件文档 https://docs.python.org/2/distutils/setupscript.html 网上应该也能找到一些中文的关于setup.py教程.
好的谢谢[/quote] 英语差,看不懂。。
f08865 2015-05-03
  • 打赏
  • 举报
回复
引用 6 楼 panghuhu250 的回复:
py2exe使用python的distutils工具, 不能自动检测到import的文件, 需要自己设置. 这儿是setup.py文件文档 https://docs.python.org/2/distutils/setupscript.html 网上应该也能找到一些中文的关于setup.py教程.
好的谢谢
panghuhu250 2015-05-03
  • 打赏
  • 举报
回复
py2exe使用python的distutils工具, 不能自动检测到import的文件, 需要自己设置. 这儿是setup.py文件文档 https://docs.python.org/2/distutils/setupscript.html 网上应该也能找到一些中文的关于setup.py教程.
f08865 2015-05-03
  • 打赏
  • 举报
回复
引用 2 楼 panghuhu250 的回复:
像是gui2exe或wx的一个bug. 试试这儿的建议, 改动一下gui2exe的代码. http://stackoverflow.com/questions/21444951/wxpython-3-0-breaks-older-apps-locale-error 其实, 你要用的py2exe, 你可以直接用它, 不一定要通过gui2exe来使用它.
你好,现在又有了新进展,我在setup.py(我用来打包的脚本) 里面import了我要打包的另外3个py文件,而且将setup.py与这四个py文件都放在同一目录, 打包完成后又出现了一个新问题 ImportError: matplotlib requires dateutil 我肯定有装dateutil这个模块的,不然我的原py文件肯定打不开 如何是好
f08865 2015-05-03
  • 打赏
  • 举报
回复
引用 2 楼 panghuhu250 的回复:
像是gui2exe或wx的一个bug. 试试这儿的建议, 改动一下gui2exe的代码. http://stackoverflow.com/questions/21444951/wxpython-3-0-breaks-older-apps-locale-error 其实, 你要用的py2exe, 你可以直接用它, 不一定要通过gui2exe来使用它.
好的,我略过gui2exe这个工具,直接使用py2exe 我首先建立一个Hello.py尝试了一遍,感觉也还不错。 这种是console的, 然后我试试看打包我的py,发觉还是出了问题 Traceback (most recent call last): File "lightcompute.py", line 9, in <module> ImportError: No module named compute 我知道是什么意思,就是我打包的这个py文件,里面import的另外一个文件它不能跟着打包,请问有什么好的解决方法吗 总的思路是这样,现在有A、B、C、D四个py文件 A import B、C、D B import C、D C import D 请问如何是好
f08865 2015-05-03
  • 打赏
  • 举报
回复
引用 1 楼 sinat_16968575 的回复:
谢邀,水平有限,没法解答你的问题。 我只用过pyinstall,要不你试试。
好的谢谢
panghuhu250 2015-05-03
  • 打赏
  • 举报
回复
像是gui2exe或wx的一个bug. 试试这儿的建议, 改动一下gui2exe的代码. http://stackoverflow.com/questions/21444951/wxpython-3-0-breaks-older-apps-locale-error 其实, 你要用的py2exe, 你可以直接用它, 不一定要通过gui2exe来使用它.
l_xm 2015-05-03
  • 打赏
  • 举报
回复
谢邀,水平有限,没法解答你的问题。 我只用过pyinstall,要不你试试。

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧