【问题标题】:Bundle Text file in py2app Application (python)在 py2app 应用程序(python)中捆绑文本文件
【发布时间】:2011-12-18 16:39:08
【问题描述】:

我最近学习了 Python (2.7),并一直在使用 AI 制作一些简单的棋盘游戏,例如练习。我目前正在制作一个智能刽子手游戏,它需要包含一个字典文件。 (我有一个文本文件,每行都有一个新单词)。我成功地将 py2app 用于其他内容,例如:connect-four.zzl.org,但不幸的是,当我为我的新 hangman 程序运行 py2app 时,它似乎不包含我的文本文件。谁能帮我弄清楚如何包含这个文件,以便程序可以像我链接到的四连接游戏一样分发?

非常感谢。 (我运行的是 OS X 10.7,如有必要,可以提供任何其他必要的信息)

【问题讨论】:

    标签: python osx-snow-leopard py2app


    【解决方案1】:

    在您的选项中指定一个包含要包含的资源列表的资源键。这将是您的应用运行时的当前目录

    options = { "resources": ["myfile.txt"] }

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

    如果您将资源标志与 py2applet 一起使用,它将创建该密钥

    【讨论】:

    • 太棒了!我在我的图标规范下方尝试了它,它起作用了。非常感谢。
    • 实际上,我认为这对 py2exe 的工作方式相同,但事实并非如此。我写了这个: distutils.core.setup( windows=[ {'script': 'hangman.py', 'icon_resources': [(1, 'HangIcon.ico')], 'other_resources': [(1, '2of12inf .txt')]} ],
    • 您的问题说您正在使用 py2app。如果您想要一个 py2exe 特定的答案,请务必这样说:)
    • 我想要一个 py2app 的答案,并且我认为一旦我理解了这一点,我就可以找出 py2exe 的答案——但我做不到。我想我会发布一个新主题。
    【解决方案2】:

    From the help document for py2app:

    第一步是为您的脚本创建一个setup.py 文件。 setup.py 是“项目文件”,它告诉 setuptools 它需要的一切 知道构建您的应用程序。我们将使用py2applet 脚本来做 那:

    $ py2applet --make-setup MyApplication.py

    Wrote setup.py

    如果您的应用程序有一个图标(.icns 格式)或数据文件, 它需要,您还应该将它们指定为py2applet 的参数。

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

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

    【讨论】:

    • 感谢您的回复。正如“jdi”所说,正确的做法是将其指定为 options = { "resources": ["myfile.txt"] }.
    • @user1104215:这两种方法都有效。请务必点击适合您的答案旁边的绿色复选标记。
    【解决方案3】:

    一种非常简单的方法是将您的字典添加为您在运行时导入的(a 中的变量)python 模块。字典将像任何其他模块一样嵌入到您的 exe 中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-24
      • 1970-01-01
      • 1970-01-01
      • 2012-08-19
      • 2018-03-22
      相关资源
      最近更新 更多