【问题标题】:Developed game in Python - Steam installs and can run locally but the game crashes when launched from Steam directly用 Python 开发的游戏 - Steam 安装并可以在本地运行,但直接从 Steam 启动时游戏崩溃
【发布时间】:2020-06-23 23:04:33
【问题描述】:

我使用 Pygame 在 python 中开发了一个游戏。到目前为止,使用 pyinstaller 捆绑它在捆绑它并在另一台机器上运行时给我带来了零问题。 Steam 可以安装游戏,然后导航到其本地目录并启动 .exe 将允许游戏运行,但是每当我尝试通过 Steam 启动器运行它时,它都会告诉我文件丢失,即使我知道它们在本地安装目录。

关于可能导致此类问题的任何想法?

【问题讨论】:

  • 这样的事情你可能可以直接联系steam。
  • 目前正在这样做。想在此期间我会来这里。
  • 检查您的程序试图从中加载文件的目录实际上是当前目录。在启动等时记录os.getcwd()。也许它类似于"C:/SteamLauncher/",而您的代码期待"C:/SteamLauncher/MyInstaller/Files/"。如果您发现这是问题所在,请用解决方案回答您自己的问题。上周有人问了一个类似的(未回答的)问题,这是一个常见问题。
  • 程序可以在不同的文件夹中运行,然后您期望它可能需要os.path.dirname(__file__)os.path.dirname(sys.argv[0]) 等来获取运行代码的文件夹并使用此路径加载文件。 Determining application path in a Python EXE generated by pyInstaller
  • 这是有道理的。我现在正在联系 Steam 支持,询问 Steam 是否会在启动时更改当前工作目录。我会报告我的发现,以便妥善解决。

标签: python pygame pyinstaller steam file-not-found


【解决方案1】:

因此,在听取用户 Kingsleys 的建议并使用“os.getcwd()”查看 Steam 究竟从何处启动游戏后,我注意到它正在将 .exe 位置上的目录视为实际工作目录.为了解决这个问题,我所要做的就是更改我的包布局,以便我的资产存储在这个文件夹中。

不再面临这个问题。

【讨论】:

    猜你喜欢
    • 2015-02-15
    • 1970-01-01
    • 1970-01-01
    • 2018-02-11
    • 1970-01-01
    • 2016-02-13
    • 2018-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多