simplegui 并不是一个标准Python module。它是一个开源项目 Codeskulptor 中的一个提供gui支持的模块。Codeskulptor 基于javascript,它可以翻译python程序使得其直接在浏览器中运行。Rice大学在coursera上提供python基础课便使用了 Codeskulptor 平台进行教学,学生可以自由地在Codeskulptor 上编写,存储和分享python程序。
参考:
http://mooc.guokr.com/post/604049/
http://stackoverflow.com/questions/16387770/how-to-integrate-simplegui-with-python-2-7-and-3-0-shell
这篇教程给出了一个可行的解决方案,即用SimpleGUICS2Pygame替代simplegui
https://pypi.python.org/pypi/SimpleGUICS2Pygame/
教程给在windows上的安装可以选择下载离线包或者安装 pip,使用 pip 安装SimpleGUICS2Pygame
下面是我使用 pip 的安装过程
https://pip.pypa.io/en/latest/installing.html
按照说明,下载get-pip.py,然后执行 python get-pip.py
过程中可能会出现类似 UnicodeDecodeError: 'ascii' codec can't decode byte .....的错误
参考http://blog.csdn.net/meylovezn/article/details/18080515
在出错文件头部的import部分后面添加
import sys
reload(sys)
sys.setdefaultencoding('gb18030')
pip安装完成后,在Path环境变量中添加 Python安装目录下的Script文件夹(里面包含了pip.exe)
然后更新 pip
python -m pip install -U pip
安装setuptools
pip install -U setuptools
要确保这两个过程都正常完成
如果出现类似错误 Fatal error in launcher: Unable to create process using '“”D:\Program Files (x86)\Python2.7\python.exe“” “D:\Program Files (x86)\Python2.7\pip.exe”
解决方法参见这里
这个是文件名中的空格导致的问题,所以需要修改两个地方
首先是 .../Python安装目录/Script/pip.exe (建议先备份)
用Notepad++(或者二进制编辑器)打开该文件,找到
“D:\Program Files (x86)\Python2.7\python.exe” (这是在我电脑上的情况)
替换为
D:\Progra~1\Python2.7\python.exe.............
然后保存('.'用来补齐,"Program Files (x86)"替换为"Progra~1" 需要补齐11个'.',另外还去掉了两个双引号,所以还要再补两个‘.’)
“Progra~1”是 Dos/windows3.x 提供的短路径名表示,在高版本系统中可以被兼容。
在你的系统中“Program Files (x86)”也可能被表示为“Progra~2”
短路径名表示应该是取前5个字符然后对于同名的依次加上~1,~2。
第二个要修改的是系统Path,有关Python的路径带空格的都要用短路径名处理。。
到这里 pip 应该能正常使用了。。
执行该脚本可以检查你还差哪些module,如果一切正常就congratulations。。
首先需要两个支持module: pygame 和 matplotlab
这两个都有独立的安装程序可以离线下载,matplotlab 还依赖其他几个 module,
总之差什么装什么吧。。
可以参见这里的帮助。记得用刚才的脚本来检查依赖(AMD64的用户推荐都用win32的包。。。)
依赖装好后
pip install SimpleGUICS2Pygame
安装主角,然后更新
pip install SimpleGUICS2Pygame --upgrade
Finally, everything is done.You can use simplegui on your own computer!!
写一段小程序来测试下(来自我在跟的Python课)
import SimpleGUICS2Pygame.simpleguics2pygame as simplegui
def tick():
print "tick!"
timer = simplegui.create_timer(1000, tick)
timer.start()