在py2app应用中打包文本文件(python)

1 投票
3 回答
1631 浏览
提问于 2025-04-17 08:35

我最近学会了Python(2.7),并且在做一些简单的棋盘游戏来练习,比如说有AI的游戏。我现在正在制作一个智能的猜单词游戏,这个游戏需要用到一个字典文件。(我有一个文本文件,每一行都有一个新单词)。我之前用py2app成功地做过其他项目,比如这个:connect-four.zzl.org,但是不幸的是,当我为新的猜单词程序运行py2app时,它似乎没有把我的文本文件包含进去。有没有人能帮我弄明白怎么把这个文件包含进去,这样我就可以像我链接的四连棋游戏那样分发我的程序?

非常感谢。(我在使用OS X 10.7,如果需要的话可以提供其他必要的信息)

3 个回答

0

一种非常简单的方法是把你的字典放在一个Python模块里,然后在运行时导入这个模块。这样,字典就会像其他模块一样被嵌入到你的可执行文件(exe)中。

2

来自py2app的帮助文档:

第一步是为你的脚本创建一个 setup.py 文件。这个 setup.py 文件就像是“项目文件”,它告诉setuptools(一个工具)需要知道的所有信息,以便构建你的应用程序。我们将使用 py2applet 脚本来完成这一步:

$ py2applet --make-setup MyApplication.py

写入了setup.py

如果你的应用程序有一个图标(.icns格式)或者需要的数据文件,你也应该把它们作为参数提供给 py2applet

所以假设你有 hangman.pyhangman.txt,你可以运行:

$ py2applet --make-setup hangman.py hangman.txt

2

在你的选项中指定一个资源键,这个键里面包含了你想要包含的资源列表。当你的应用运行时,这个资源列表就是当前的目录。

比如,你可以这样写:options = { "resources": ["myfile.txt"] }

http://svn.pythonmac.org/py2app/py2app/trunk/doc/index.html#option-reference

如果你在使用py2applet的时候加上资源标志,它会自动创建这个键。

撰写回答