代码在本地的pycharm上是可以正常运行的,但通过 pyinstaller -F -w 转换成EXE后就报错了
然后我用 CMD 运行 提示说
然后我也按照网上说的 在第一行 添加字符转换 可还是不行,到底是那个地方出错了呢? 请教下大家
我付上源代码:
# -*- coding: utf-8 -*-
import wx
from win32con import AW_ACTIVATE, AW_BLEND, AW_CENTER, AW_HIDE, AW_HOR_NEGATIVE, \
AW_HOR_POSITIVE, AW_SLIDE, AW_VER_NEGATIVE, AW_VER_POSITIVE, SPI_GETWORKAREA
import win32api
from ctypes import windll, c_int
class Popup(wx.MiniFrame):
def __init__(self, label, parent=None, title=""):
wx.MiniFrame.__init__(self, parent, -1, title, wx.DefaultPosition, size=(580, 280),
style=wx.DEFAULT_FRAME_STYLE | wx.STAY_ON_TOP)
for monitor in win32api.EnumDisplayMonitors():
monitor_info = win32api.GetMonitorInfo(monitor[0])
if monitor_info['Flags'] == 1:
break
workarea = monitor_info['Work']
pos = (workarea[2] - 580, workarea[3] - 280)
bg = wx.Colour(255, 255, 225)
self.SetBackgroundColour(bg)
self.SetPosition(pos)
text = wx.StaticText(self, -1, label)
text.SetBackgroundColour(bg)
flags = AW_SLIDE | AW_VER_NEGATIVE | AW_ACTIVATE
windll.user32.AnimateWindow(c_int(self.GetHandle()), c_int(800), c_int(flags))
self.Refresh()
self.Bind(wx.EVT_CLOSE, self.RemovePopup)
def RemovePopup(self, evt=None):
flags = AW_BLEND | AW_HIDE
windll.user32.AnimateWindow(c_int(self.GetHandle()), c_int(800), c_int(flags))
self.Destroy()
if __name__ == '__main__':
app = wx.App(False)
f = Popup('测试右下角弹出框\n测试右下角弹出框\n\n')
f.Show()
app.MainLoop()
两点可以试试:
1.看着coding后面的冒号像是中文的,格式写对
2.看看文件的编码格式是不是utf-8的
通过.spec文件打包试一下
######tx是我要转成exe的源文件######回复 @阿有哥 : tx是什么?是你引入的文件吗######也还是一样 提示报错。版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。