在py2app应用中打包文本文件(python)
我最近学会了Python(2.7),并且在做一些简单的棋盘游戏来练习,比如说有AI的游戏。我现在正在制作一个智能的猜单词游戏,这个游戏需要用到一个字典文件。(我有一个文本文件,每一行都有一个新单词)。我之前用py2app成功地做过其他项目,比如这个:connect-four.zzl.org,但是不幸的是,当我为新的猜单词程序运行py2app时,它似乎没有把我的文本文件包含进去。有没有人能帮我弄明白怎么把这个文件包含进去,这样我就可以像我链接的四连棋游戏那样分发我的程序?
非常感谢。(我在使用OS X 10.7,如果需要的话可以提供其他必要的信息)
3 个回答
一种非常简单的方法是把你的字典放在一个Python模块里,然后在运行时导入这个模块。这样,字典就会像其他模块一样被嵌入到你的可执行文件(exe)中。
第一步是为你的脚本创建一个
setup.py
文件。这个setup.py
文件就像是“项目文件”,它告诉setuptools(一个工具)需要知道的所有信息,以便构建你的应用程序。我们将使用py2applet
脚本来完成这一步:
$ py2applet --make-setup MyApplication.py
写入了setup.py
如果你的应用程序有一个图标(.icns格式)或者需要的数据文件,你也应该把它们作为参数提供给
py2applet
。
所以假设你有 hangman.py
和 hangman.txt
,你可以运行:
$ py2applet --make-setup hangman.py hangman.txt
在你的选项中指定一个资源键,这个键里面包含了你想要包含的资源列表。当你的应用运行时,这个资源列表就是当前的目录。
比如,你可以这样写:options = { "resources": ["myfile.txt"] }
http://svn.pythonmac.org/py2app/py2app/trunk/doc/index.html#option-reference
如果你在使用py2applet的时候加上资源标志,它会自动创建这个键。