- 最后登录
- 2013-7-18
- 注册时间
- 2011-7-16
- 阅读权限
- 70
- 积分
- 3247
- 纳金币
- 324742
- 精华
- 0
|
本文对Python的版本选择,IDE选择及编码的解决方案进行了一番详细的描述,实为Python初学者必读的Python学习经验心得。
AD:
使用了wxPython、pychecker编写的Python静态编译器,用于在编译器查找py脚本的错误,开放源码,与各位pythoner共享之,希望本文能给大家带来帮助,下面就一起进去Python的世界吧。
代码如下:
def OnBuildOne(self, event): if self.paths.count != 0: self.Report.AppendText(self.CompileInfoHead("File")) path = self.paths[self.List.GetSelection()] print "Building " + path + " ..." try: py_compile.compile(path, None, None) except py_compile.PyCompileError, ex: print ex self.Report.AppendText("=-- Build Finished.
") def OnBuildAll(self, event): if self.paths.count != 0: self.Report.AppendText(self.CompileInfoHead("File(s)")) for path in self.paths: print "Building " + path + " ..." try: py_compile.compile(path, None, None) except py_compile.PyCompileError, ex: print ex self.Report.AppendText("=-- Build Finished.
") def OnBuildDirectory(self, event): dlg = wxDirDialog(self, "Select a directory for build", self.cfg[2]) if dlg.ShowModal() == wxID_OK: path = dlg.GetPath() self.Report.AppendText(self.CompileInfoHead("Directory:", path)) compile_dir(path, 10, None, 1, None) self.Report.AppendText("=-- Build Finished.
") self.cfg[2] = dlg.GetPath() dlg.Destroy() def OnAbout(self, event): dlg = wxMessageDialog(self, "resent by Dracula 2005
" "Build 2005.05.05
", "About", wxOK | wxICON_INFORMATION) dlg.ShowModal() dlg.Destroy() def OnResize(self, event): sizeClient = self.GetClientSize() self.List.SetSize(sizeClient) sizeList = self.List.GetClientSize() self.Report.SetSize(wxSize(sizeClient.width, sizeClient.height-sizeList.height)) def OnClose(self, event): try: f = open("config.cfg", "w") f.write(self.cfg[0]) if self.cfg[0][-1] != '
': f.write("
") f.write(self.cfg[1]) if self.cfg[1][-1] != '
': f.write("
") f.write(self.cfg[2]) f.close() except IOError: pass sys.path = self.save_sys_path[:] self.timer.Stop() del self.timer del self.icon self.Destroy() def OnQuit(self, event): self.Close(true) def PyCheck(self, argv): argv2 = ['pychecker'] argv2.append(argv) pychecker.checker2.main(argv2) #reload(pychecker.checker2) def AddPath(self, path): curdir = path system_dir = curdir + 'datascript' system_core_dir = curdir + 'datascriptcore' subsystem_dir = curdir + 'datasubsystem' subsystem_trashbin_dir = curdir + 'datasubsystem rashbin' sys.path = self.save_sys_path[:] sys.path.append(curdir) sys.path.append(system_dir) sys.path.append(system_core_dir) sys.path.append(subsystem_dir) sys.path.append(subsystem_trashbin_dir) def CompileInfoHead(self, str1, str2=""): return "=-- %s %s Compile %s %s ...
" % (self.Date(), self.Time(), str1, str2) def Error(self, error): self.Report.AppendText(error) def Output(self, info): self.Report.AppendText(info) def Date(self): t = time.localtime(time.time()) strDate = time.strftime("%Y.%m.%d", t) return strDate def Time(self): t = time.localtime(time.time()) strTime = time.strftime("%I:%M:%S", t) return strTime def Notify(self): self.statusbar.SetStatusText(self.Date() + " " + self.Time(), 1) class MyApp(wxApp): def OnInit(self): self.frame = MyFrame(NULL, -1, "cd2Py Compiler") self.frame.Show(true) return true cd2Py = MyApp(0) import sys class errCatcher: def __init__(self): pass def write(self, stuff): cd2Py.frame.Error(stuff) class outCatcher: def __init__(self): passdef write(self, stuff): cd2Py.frame.Output(stuff) sys.stderr = errCatcher() sys.stdout = outCatcher() cd2Py.MainLoop()
纳金网:http://www.narkii.com
|
|