2004年02月12日 星期四 00:12
我愿意! 不过我是生手,还要不断学习。希望能给我这样一个实践的机会~ :-) ------------------------------------------ 刘鑫 <lx1978 at 21cn.com> wrote: 前几天,一个朋友找我帮忙做一个小软件,用来教她儿子学算术。我用Access 做了一个原型。Access很方便,单文件就可以包括数据库功能和GUI 了。但是也有 很多不足,比如移植性不好,在朋友那里不能执行(Office 里有一个Access程序 的打包工具,忘了在哪里)。VBA的功能也不够让人满意。我打算用Python来写。 有没有朋友有兴趣一起来?因为程序很简单,可以拿来做入门练习。 主要的功能就是家长(管理员)设定题目的难度(比如包括何种运算符,算式 有多长,运算数在什么范围内等等),程序根据儿童(用户)的操作给出题目、批 阅答案。 后期我希望可以做出操作日志和成绩统计、分析功能。另外考虑到用户群,希 望界面尽可能的美观、友好,有亲和力。 刘鑫 lx1978 at 21cn.com 2004-02-11 _______________________________________________ python-chinese mailing list python-chinese at lists.python.cn http://lists.exoweb.net/cgi-bin/mailman/listinfo/python-chinese
2004年02月12日 星期四 08:38
>1. 这个项目是纯粹练手,还是打算做成有实用目的软件? 肯定是要实用的,而且现在已经有一个用户了。 >2. 版权问题。我认为对于多人开发的项目,这个问题还是先讨论一下为好。我建议采用一种开放源码的协议。 GPL。 >3. 技术问题 >a. 界面: 我建议用wxPython. 和Tkinter相比,wxPython使用所运行的平台的GUI,UI元件比较多,对桌面用>户来说看起来也顺眼。 我喜欢wxPython。 >b. 需要用Database吗? >根据我的理解,这是一个单机的,供桌面用户使用的软件。我建议采用轻量级的,易于安装的数据库: >如果用关系数据库,gadfly 或 PySQLite都是很好的选择。两者之间我更倾向于 PySQLite。 哪里可以找到PySQLLite的资料和安装程序?我开始想用XML的,图的就是不用安装。 >如果用对象数据库,可以使用ZODB(Zope所使用的对象数据库)。 应该用不到那么夸张。 >c. 需要多媒体功能么?如果需要我可以找找。 暂时还不需要,美工我已经找到人了。 近日给出一些文档,正在学习UML。 这个程序理想中应该是不用任何配置,安装后直接可用。界面不能是普通的Windows灰窗体,至少应该有皮肤(暂时不一定要支持换肤)。 一定要突出简单易用,哪怕牺牲一些功能和性能。因为这是面向基本上只会开机和关机的用户。 刘鑫 lx1978 at 21cn.com 2004-02-12
2004年02月12日 星期四 09:33
python-chinese,您好! 首先,我写了一个游戏的剧情函数的DLL,我用了Boost.python.代码如下: // gut.hpp #ifndef GUT_HPP #define GUT_HPP #include "stdafx.h" extern int Geti(); extern float Getf(); extern const char* Getc(); #endif // gut.cpp #include "stdafx.h" #include "gut.h" int Geti() { return 10; } float Getf() { return 3.245f; } const char* Getc() { return "test"; } #includepython module.hpp> #includepython def.hpp> using namespace boost::python; BOOST_PYTHON_MODULE(GutDll) { def("Geti", Geti); def("Getf", Getf); def("Getc", Getc); } 我这个文件编译成GutDll.dll和GutDll.lib,我把这个DLL和lib放到我的python的 安装的目录下,GutDll放到C:\python22\DLLs下,GutDll.lib放到C:\python22\libs 下。 我在python22的IDLE(python GUI)中编写如下的程序: // test2.py(test2是这个python的文件名,我下面的程序会使用) import GutDll gd = GutDll print "test string is", gd.Getc() print "test integet is", gd.Geti() print "test float is", gd.Getf() 这个脚本在python中运行的很好,都是正确的。 为了让这个脚本在游戏中使用,我写了如下的程序在C++中运行python的程序。 // PythonWrapper.hpp #ifndef PYTHONWRAPPER_HPP #define PYTHONWRAPPER_HPP #include "StdAfx.h" #define SCRIPT_BEGIN namespace script{ #define SCRIPT_END } #ifdef SCRIPT_EXPORTS #define ST_API __declspec(dllexport) #else #define ST_API __declspec(dllimport) #endif #include "Py_Include\Python.h" SCRIPT_BEGIN class ST_API InterpreterScript { public: InterpreterScript(); ~InterpreterScript(); bool Initialize(); bool IsInitialized()const; // execluate Python's string command bool RunCommand(char* command)const; // execluate a Python's file content bool RunScript(const char* filename)const; bool Finalize()const; }; SCRIPT_END #endif ################################################################## // PythonWrapper.cpp #include "StdAfx.h" #include "PythonWrapper.h" SCRIPT_BEGIN InterpreterScript:: InterpreterScript() { } InterpreterScript:: ~InterpreterScript() { } bool InterpreterScript:: Initialize() { Py_SetProgramName("Game script -- Python" ); Py_Initialize(); return true; } bool InterpreterScript:: IsInitialized()const { return Py_IsInitialized() == 0 ? false : true; } bool InterpreterScript:: RunCommand(char* command)const { int iRet = PyRun_SimpleString(command); if (iRet<0) return false; return true; } bool InterpreterScript:: RunScript(const char* filename)const { FILE * fp; fp = fopen(filename, "r" ); if(fp == NULL) { printf( "can't open file\n" ) ; return false; } fclose(fp); char* exec_str = NULL; exec_str = (char*)malloc(strlen(filename) + 13); sprintf(exec_str, "execfile('%s')", filename); int success = 0; success = PyRun_SimpleString(exec_str); free(exec_str); if (success == -1) { printf("Problem running script!\n"); return false; } return true; } bool InterpreterScript:: Finalize()const { Py_Finalize(); return true; } SCRIPT_END 同样的我把这个程序编译成Script.dll和script.lib。 我写了如下的一个测试程序,我把script.dll和script.lib,GutDll.dll和GutDll.lib都放到这个测试程序的当前的工作目录下。我把PythonWrapper.hpp也 放到同样的工作目录下。这个程序还需要使用python22_d.dll和python22_d.lib 和Boost_Python_debug.dll(这个程序都是在debug的版本下。) 测试程序如下: #include "stdafx.h" #include "PythonWrapper.h" using namespace script; #include#pragma comment(lib, "Script.lib") int main(int argc, char* argv[]) { InterpreterScript is; is.Initialize(); bool b = is.IsInitialized(); is.RunScript("test2.py"); is.Finalize(); return 0; } 现在,当我运行这个程序时,报如下的错误: run it, has a wrong as: Traceback (most recent call last): File " ", line 1, in ? ImportError: No module named GutDll. PS: 如果test2.py没有使用GutDll.dll中的函数,只是一个纯python程序,例如 如下: import math print "cos(0.0) = ", msth.cos(0.0) 上面的程序就能成功的运行。 这个问题困扰我很久了,我一直都找不到解决方法,只要问问大家了,渴望大家能 给我一点帮助,我想把这个问题解决掉。谢谢大家了。 致 礼! 马肝千里 tlovexyj at 21cn.com 2004-02-12
2004年02月12日 星期四 09:37
我比较了一下SWIG和boost.python,感觉如果真是做项目的话,还是swig更使用一些。因为模块的接口不可能也不应该定义得非常复杂。 ----- Original Message ----- From: "千里马肝" <tlovexyj at 21cn.com> To: "python-chinese" <python-chinese at lists.python.cn> Sent: Thursday, February 12, 2004 9:33 AM Subject: [python-chinese] 请问所有使用python作脚本的C++(and boost)程序大虾们 > python-chinese,您好! > > 首先,我写了一个游戏的剧情函数的DLL,我用了Boost.python.代码如下: > // gut.hpp > #ifndef GUT_HPP > #define GUT_HPP > #include "stdafx.h" > > extern int Geti(); > extern float Getf(); > extern const char* Getc(); > #endif > > // gut.cpp > #include "stdafx.h" > #include "gut.h" > > int Geti() > { > return 10; > } > > float Getf() > { > return 3.245f; > } > > const char* Getc() > { > return "test"; > } > > #includepython module.hpp> > #includepython def.hpp> > using namespace boost::python; > > BOOST_PYTHON_MODULE(GutDll) > { > def("Geti", Geti); > def("Getf", Getf); > def("Getc", Getc); > } > > 我这个文件编译成GutDll.dll和GutDll.lib,我把这个DLL和lib放到我的python的 > 安装的目录下,GutDll放到C:\python22\DLLs下,GutDll.lib放到C:\python22\libs > 下。 > > 我在python22的IDLE(python GUI)中编写如下的程序: > // test2.py(test2是这个python的文件名,我下面的程序会使用) > import GutDll > gd = GutDll > print "test string is", gd.Getc() > print "test integet is", gd.Geti() > print "test float is", gd.Getf() > > 这个脚本在python中运行的很好,都是正确的。 > > 为了让这个脚本在游戏中使用,我写了如下的程序在C++中运行python的程序。 > // PythonWrapper.hpp > #ifndef PYTHONWRAPPER_HPP > #define PYTHONWRAPPER_HPP > #include "StdAfx.h" > > #define SCRIPT_BEGIN namespace script{ > #define SCRIPT_END } > > #ifdef SCRIPT_EXPORTS > #define ST_API __declspec(dllexport) > #else > #define ST_API __declspec(dllimport) > #endif > > #include "Py_Include\Python.h" > > SCRIPT_BEGIN > > class ST_API InterpreterScript > { > public: > InterpreterScript(); > ~InterpreterScript(); > bool Initialize(); > bool IsInitialized()const; > // execluate Python's string command > bool RunCommand(char* command)const; > // execluate a Python's file content > bool RunScript(const char* filename)const; > bool Finalize()const; > }; > > SCRIPT_END > > #endif > ################################################################## > > // PythonWrapper.cpp > #include "StdAfx.h" > #include "PythonWrapper.h" > > SCRIPT_BEGIN > InterpreterScript:: > InterpreterScript() > { > } > > InterpreterScript:: > ~InterpreterScript() > { > } > > bool InterpreterScript:: > Initialize() > { > Py_SetProgramName("Game script -- Python" ); > Py_Initialize(); > return true; > } > > bool InterpreterScript:: > IsInitialized()const > { > return Py_IsInitialized() == 0 ? false : true; > } > > bool InterpreterScript:: > RunCommand(char* command)const > { > int iRet = PyRun_SimpleString(command); > if (iRet<0) > return false; > > return true; > } > > bool InterpreterScript:: > RunScript(const char* filename)const > { > FILE * fp; > fp = fopen(filename, "r" ); > if(fp == NULL) > { > printf( "can't open file\n" ) ; > return false; > } > fclose(fp); > > char* exec_str = NULL; > exec_str = (char*)malloc(strlen(filename) + 13); > sprintf(exec_str, "execfile('%s')", filename); > int success = 0; > success = PyRun_SimpleString(exec_str); > free(exec_str); > if (success == -1) > { > printf("Problem running script!\n"); > return false; > } > > return true; > } > > bool InterpreterScript:: > Finalize()const > { > Py_Finalize(); > return true; > } > > SCRIPT_END > > 同样的我把这个程序编译成Script.dll和script.lib。 > > 我写了如下的一个测试程序,我把script.dll和script.lib,GutDll.dll和GutDll.lib都放到这个测试程序的当前的工作目录下。我把PythonWrapper.hpp也 > 放到同样的工作目录下。这个程序还需要使用python22_d.dll和python22_d.lib > 和Boost_Python_debug.dll(这个程序都是在debug的版本下。) > 测试程序如下: > #include "stdafx.h" > #include "PythonWrapper.h" > using namespace script; > > #include> #pragma comment(lib, "Script.lib") > int main(int argc, char* argv[]) > { > InterpreterScript is; > is.Initialize(); > bool b = is.IsInitialized(); > is.RunScript("test2.py"); > is.Finalize(); > return 0; > } > > 现在,当我运行这个程序时,报如下的错误: > run it, has a wrong as: > Traceback (most recent call last): > File " ", line 1, in ? > ImportError: No module named GutDll. > > PS: 如果test2.py没有使用GutDll.dll中的函数,只是一个纯python程序,例如 > 如下: > import math > print "cos(0.0) = ", msth.cos(0.0) > 上面的程序就能成功的运行。 > > 这个问题困扰我很久了,我一直都找不到解决方法,只要问问大家了,渴望大家能 > 给我一点帮助,我想把这个问题解决掉。谢谢大家了。 > > > 致 > 礼! > > > 马肝千里 > tlovexyj at 21cn.com > 2004-02-12 > -------------------------------------------------------------------------------- > _______________________________________________ > python-chinese mailing list > python-chinese at lists.python.cn > http://lists.exoweb.net/cgi-bin/mailman/listinfo/python-chinese >
2004年02月12日 星期四 10:03
>>2. 版权问题。我认为对于多人开发的项目,这个问题还是先讨论一下为好。我建议采用一种开放源码的协议。 >GPL。 >>b. 需要用Database吗? >>根据我的理解,这是一个单机的,供桌面用户使用的软件。我建议采用轻量级的,易于安装的数据库: >>如果用关系数据库,gadfly 或 PySQLite都是很好的选择。两者之间我更倾向于 PySQLite。 >哪里可以找到PySQLLite的资料和安装程序?我开始想用XML的,图的就是不用安装。 http://pysqlite.sourceforge.net/ 用法示例: cx = sqlite.connect("db", encoding="utf-8") cu = cx.cursor() cu.execute("create table test(u1 unicode, u2 unicode)") cu.execute("insert into test(u1, u2) values (%s, %s)", (u"\x99sterreich", u"Ungarn")) cu.execute("select u1 || '-' || u2 from test") print cu.fetchone() ('\xc2\x99sterreich-Ungarn',) db是在硬盘上的数据库文件,如果没有的话会自动创建. >>如果用对象数据库,可以使用ZODB(Zope所使用的对象数据库)。 >应该用不到那么夸张。 ZODB是最好安装,最好学习和使用的数据存储方式了.你就当作程序中有些类的对象在程序退出后不会消失就可以了。 呵呵.只是如果你需要的是关系数据库的话,那就不合适了. http://zope.org/Wikis/ZODB/FrontPage 用法示例: from ZODB import FileStorage, DB from persistent import Persistent storage = FileStorage.FileStorage('/tmp/test-filestorage.fs') db = DB(storage) conn = db.open() class User(Persistent): pass dbroot = conn.root() # Ensure that a 'userdb' key is present # in the root if not dbroot.has_key('userdb'): from BTrees.OOBTree import OOBTree dbroot['userdb'] = OOBTree() userdb = dbroot['userdb'] # Create new User instance newuser = User() # Add whatever attributes you want to track newuser.id = 'amk' newuser.first_name = 'Andrew' ; newuser.last_name = 'Kuchling' ... # Add object to the BTree, keyed on the ID userdb[newuser.id] = newuser # Commit the change get_transaction().commit() # 读取id为'amk'的user对象 user_amk = userdb['amk'] print user_amk.name,user_amk.last_name # 做一些修改 user_amk.name = 'jacob' # commit to database get_transaction().commit() >>c. 需要多媒体功能么?如果需要我可以找找。 >暂时还不需要,美工我已经找到人了。 不是美工,我是说例如发出声音,播放音乐,放动画之类的功能. >一定要突出简单易用,哪怕牺牲一些功能和性能。因为这是面向基本上只会开机和关机的用户。 用py2exe打包,做成绿色软件,直接解压就能用. 刘鑫 lx1978 at 21cn.com 2004-02-12
2004年02月12日 星期四 10:11
>>>如果用对象数据库,可以使用ZODB(Zope所使用的对象数据库)。 >>应该用不到那么夸张。 >ZODB是最好安装,最好学习和使用的数据存储方式了.你就当作程序中有些类的对象在程序退出后不 >会消失就可以了。 >呵呵.只是如果你需要的是关系数据库的话,那就不合适了. >http://zope.org/Wikis/ZODB/FrontPage 不过说到这个项目,恐怕直接用pickle模块把数据保存出去就可以了。 如果是考虑可以从程序外面阅读的话,则用xml比较好。
2004年02月12日 星期四 10:23
你看了在失败的那种情况下,sys.path的内容是什么?它包括GutDll.dll所在路径么? -----Original Message----- From: 千里马肝 [mailto:tlovexyj at 21cn.com] Sent: 2004年2月12日 9:33 To: python-chinese Subject: [python-chinese] 请问所有使用python作脚本的C++(and boost)程序大虾们 python-chinese,您好! 首先,我写了一个游戏的剧情函数的DLL,我用了Boost.python.代码如下: // gut.hpp #ifndef GUT_HPP #define GUT_HPP #include "stdafx.h" extern int Geti(); extern float Getf(); extern const char* Getc(); #endif // gut.cpp #include "stdafx.h" #include "gut.h" int Geti() { return 10; } float Getf() { return 3.245f; } const char* Getc() { return "test"; } #includepython module.hpp> #includepython def.hpp> using namespace boost::python; BOOST_PYTHON_MODULE(GutDll) { def("Geti", Geti); def("Getf", Getf); def("Getc", Getc); } 我这个文件编译成GutDll.dll和GutDll.lib,我把这个DLL和lib放到我的python的 安装的目录下,GutDll放到C:\python22\DLLs下,GutDll.lib放到C:\python22\libs 下。 我在python22的IDLE(python GUI)中编写如下的程序: // test2.py(test2是这个python的文件名,我下面的程序会使用) import GutDll gd = GutDll print "test string is", gd.Getc() print "test integet is", gd.Geti() print "test float is", gd.Getf() 这个脚本在python中运行的很好,都是正确的。 为了让这个脚本在游戏中使用,我写了如下的程序在C++中运行python的程序。 // PythonWrapper.hpp #ifndef PYTHONWRAPPER_HPP #define PYTHONWRAPPER_HPP #include "StdAfx.h" #define SCRIPT_BEGIN namespace script{ #define SCRIPT_END } #ifdef SCRIPT_EXPORTS #define ST_API __declspec(dllexport) #else #define ST_API __declspec(dllimport) #endif #include "Py_Include\Python.h" SCRIPT_BEGIN class ST_API InterpreterScript { public: InterpreterScript(); ~InterpreterScript(); bool Initialize(); bool IsInitialized()const; // execluate Python's string command bool RunCommand(char* command)const; // execluate a Python's file content bool RunScript(const char* filename)const; bool Finalize()const; }; SCRIPT_END #endif ################################################################## // PythonWrapper.cpp #include "StdAfx.h" #include "PythonWrapper.h" SCRIPT_BEGIN InterpreterScript:: InterpreterScript() { } InterpreterScript:: ~InterpreterScript() { } bool InterpreterScript:: Initialize() { Py_SetProgramName("Game script -- Python" ); Py_Initialize(); return true; } bool InterpreterScript:: IsInitialized()const { return Py_IsInitialized() == 0 ? false : true; } bool InterpreterScript:: RunCommand(char* command)const { int iRet = PyRun_SimpleString(command); if (iRet<0) return false; return true; } bool InterpreterScript:: RunScript(const char* filename)const { FILE * fp; fp = fopen(filename, "r" ); if(fp == NULL) { printf( "can't open file\n" ) ; return false; } fclose(fp); char* exec_str = NULL; exec_str = (char*)malloc(strlen(filename) + 13); sprintf(exec_str, "execfile('%s')", filename); int success = 0; success = PyRun_SimpleString(exec_str); free(exec_str); if (success == -1) { printf("Problem running script!\n"); return false; } return true; } bool InterpreterScript:: Finalize()const { Py_Finalize(); return true; } SCRIPT_END 同样的我把这个程序编译成Script.dll和script.lib。 我写了如下的一个测试程序,我把script.dll和script.lib,GutDll.dll和GutDll.lib都放到这个测试程序的当前的工作目录下。我把PythonWrapper.hpp也 放到同样的工作目录下。这个程序还需要使用python22_d.dll和python22_d.lib 和Boost_Python_debug.dll(这个程序都是在debug的版本下。) 测试程序如下: #include "stdafx.h" #include "PythonWrapper.h" using namespace script; #include#pragma comment(lib, "Script.lib") int main(int argc, char* argv[]) { InterpreterScript is; is.Initialize(); bool b = is.IsInitialized(); is.RunScript("test2.py"); is.Finalize(); return 0; } 现在,当我运行这个程序时,报如下的错误: run it, has a wrong as: Traceback (most recent call last): File " ", line 1, in ? ImportError: No module named GutDll. PS: 如果test2.py没有使用GutDll.dll中的函数,只是一个纯python程序,例如 如下: import math print "cos(0.0) = ", msth.cos(0.0) 上面的程序就能成功的运行。 这个问题困扰我很久了,我一直都找不到解决方法,只要问问大家了,渴望大家能 给我一点帮助,我想把这个问题解决掉。谢谢大家了。 致 礼! 马肝千里 tlovexyj at 21cn.com 2004-02-12
2004年02月13日 星期五 10:49
往往一门技术的学习难度会决定它的命运。将Python引入中国的一个重要途径是使更多的学习者可以读到高质量的中文版最新文档。限于个人精力,我近期没有办法继续系统的翻译Python文档,大家都来为我们喜欢的技术出一份力吧! 有意加入Python中文文档计划的朋友,请访问以下链接: http://cosoft.org.cn/projects/pythondoc/
2004年02月13日 星期五 16:12
初步考虑了一下,大家看看有没有什么问题。 解释器:Python2.3.3,毕竟2.3比2.2的多内码支持得要好些。 打包工具:Py2exe,这个没有太多的争议吧。 数据库:PySQLLite,不知道对中文支持的如何,没有什么问题的话,就是它了。如果不行,就用PyXML。早期版本不会用太多的数据库功能。 GUI:wxPython,Python平台上目前应该是比较成熟的一个了,我们统一用unicode版。 另:没有找到很理想的开发环境(可以直接将代码存为utf-8,支持代码卷入/展开,支持工程)。大家这方面有没有比较好的工具?也许我们的下一个项目,应该考虑开发一个真正适合我们中国人使用的Python开发工具,笑…… wxPython支持播放GIF,这个项目里的动画估计也不会有更复杂的了:)。以后可能要有播放声音的功能,原型先不做这方面。另外,不准备在里面放过多的动画和声音,不然软件太大,就不方便用户下载和安装了。 致 礼! 刘鑫 lx1978 at 21cn.com 2004-02-13
2004年02月13日 星期五 16:17
在sourceforge上有一个叫childsplay的项目,专门用于幼教,就有出算术题的功能, 而且界面很漂亮,给这个项目做个插件就可以增加新的功能(题目、游戏)。用这个应 该就完全可以了。 >From: "刘鑫" <lx1978 at 21cn.com> >To: "Python" <python-chinese at lists.python.cn> >Subject: [python-chinese] 项目开发环境 >Date: Fri, 13 Feb 2004 16:12:47 +0800 > >初步考虑了一下,大家看看有没有什么问题。 >解释器:Python2.3.3,毕竟2.3比2.2的多内码支持得要好些。 >打包工具:Py2exe,这个没有太多的争议吧。 >数据库:PySQLLite,不知道对中文支持的如何,没有什么问题的话,就是它了。如果 不行,就用PyXML。早期版本不会用太多的数据库功能。 >GUI:wxPython,Python平台上目前应该是比较成熟的一个了,我们统一用unicode 版。 > >另:没有找到很理想的开发环境(可以直接将代码存为utf-8,支持代码卷入/展开, 支持工程)。大家这方面有没有比较好的工具?也许我们的下一个项目,应该考虑开发 一个真正适合我们中国人使用的Python开发工具,笑…… > >wxPython支持播放GIF,这个项目里的动画估计也不会有更复杂的了:)。以后可能要 有播放声音的功能,原型先不做这方面。另外,不准备在里面放过多的动画和声音,不 然软件太大,就不方便用户下载和安装了。 > > 致 >礼! > > > 刘鑫 > lx1978 at 21cn.com > 2004-02-13 >_______________________________________________ >python-chinese mailing list >python-chinese at lists.python.cn >http://lists.exoweb.net/cgi-bin/mailman/listinfo/python-chinese _________________________________________________________________ 免费下载 MSN Explorer: http://explorer.msn.com/lccn
2004年02月13日 星期五 16:30
呵呵,我当初问了一个问题,就是这个项目是练手,还是准备做一个实用的东西。如果是 要做一个实用的东西,可以考虑在childsplay的基础上做。如果是练手,则另当别论。 http://childsplay.sourceforge.net 屏幕截图: http://childsplay.sourceforge.net/shots.html -----Original Message----- From: Who Bruce [mailto:whoonline at msn.com] Sent: 2004年2月13日 16:18 To: lx1978 at 21cn.com; python-chinese at lists.python.cn Subject: RE: [python-chinese] 项目开发环境 在sourceforge上有一个叫childsplay的项目,专门用于幼教,就有出算术题的功能, 而且界面很漂亮,给这个项目做个插件就可以增加新的功能(题目、游戏)。用这个应 该就完全可以了。
2004年02月13日 星期五 16:32
>初步考虑了一下,大家看看有没有什么问题。 >解释器:Python2.3.3,毕竟2.3比2.2的多内码支持得要好些。 支持。 >打包工具:Py2exe,这个没有太多的争议吧。 这个问题也可以到后期再考虑.:) 应该没有什么问题。 >数据库:PySQLLite,不知道对中文支持的如何,没有什么问题的话,就是它了。 >如果不行,就用PyXML。早期版本不会用太多的数据库功能。 >GUI:wxPython,Python平台上目前应该是比较成熟的一个了,我们统一用unicode版。 >另:没有找到很理想的开发环境(可以直接将代码存为utf-8,支持代码卷入/展开,支持工程)。 >大家这方面有没有比较好的工具?也许我们的下一个项目,应该考虑开发一个真正适合我们中国人 >使用的Python开发工具,笑…… 我觉得pythonwin就足够了。在源代码中可以不用中文。 >wxPython支持播放GIF,这个项目里的动画估计也不会有更复杂的了:)。 >以后可能要有播放声音的功能,原型先不做这方面。另外,不准备在里面放过多的动画和声音, >不然软件太大,就不方便用户下载和安装了。 如果想界面做的花哨的话,也可以用pygame. 不过这个可以在以后的版本中做。 这个项目需要mailing list,wiki或论坛什么的么?如果有需要,我们可以在python.cn上提供空间。 致 礼! 刘鑫 lx1978 at 21cn.com 2004-02-13
2004年02月13日 星期五 18:11
我的小外甥也需要这样一个东西, 希望能参与一下。 :) 刘鑫 <lx1978 at 21cn.com> wrote:初步考虑了一下,大家看看有没有什么问题。 解释器:Python2.3.3,毕竟2.3比2.2的多内码支持得要好些。 打包工具:Py2exe,这个没有太多的争议吧。 数据库:PySQLLite,不知道对中文支持的如何,没有什么问题的话,就是它了。如果不行,就用PyXML。早期版本不会用太多的数据库功能。 GUI:wxPython,Python平台上目前应该是比较成熟的一个了,我们统一用unicode版。 另:没有找到很理想的开发环境(可以直接将代码存为utf-8,支持代码卷入/展开,支持工程)。大家这方面有没有比较好的工具?也许我们的下一个项目,应该考虑开发一个真正适合我们中国人使用的Python开发工具,笑…… wxPython支持播放GIF,这个项目里的动画估计也不会有更复杂的了:)。以后可能要有播放声音的功能,原型先不做这方面。另外,不准备在里面放过多的动画和声音,不然软件太大,就不方便用户下载和安装了。 致 礼! 刘鑫 lx1978 at 21cn.com 2004-02-13 _______________________________________________ python-chinese mailing list python-chinese at lists.python.cn http://lists.exoweb.net/cgi-bin/mailman/listinfo/python-chinese --------------------------------- Do You Yahoo!? 完全免费的雅虎电邮,马上注册获赠额外60兆网络存储空间 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20040213/5b9d1402/attachment.htm
Zeuux © 2024
京ICP备05028076号