【问题标题】:Start executable that uses python启动使用 python 的可执行文件
【发布时间】:2012-07-09 07:59:11
【问题描述】:

我是编程和 C# 的新手,我正在尝试编写一个程序来检测我的战场 2 服务器的错误或服务器崩溃,然后它将关闭服务器(如果服务器尚未关闭)并启动它备份,但我遇到了一个小颠簸。当我尝试重新启动战场 2 时,我从 bf2 收到此错误:

调试断言失败!版本 1.0.2446.12 构建日期:
模块:Python
文件: c:\dice\Projects\BF2Branches\BF2Demo\Code\BF2\Game\Python\PythonHost.Cpp
线路:243

文本:无法导入 bf2 模块:

当前配置:

错误中的路径不存在。

我研究了几种不同的启动应用程序的方法,但它们的结果都相同。这些是我迄今为止尝试过的一对:

Process proc = new Process();
proc.StartInfo.FileName = @"txtServerPath.Text";
proc.Start();

Process.Start(txtServerPath.Text);

当我手动启动 bf2 服务器时,它启动正常。那么我做错了什么?
如果这很重要,我的程序将从 Windows Server 2003 和 Windows 7 运行。

【问题讨论】:

  • 进程启动路径可能不正确。
  • 它启动 bf2 但 bf2 然后返回该错误,因此据我所知路径必须正确。

标签: c# .net windows-7 windows-server-2003 process.start


【解决方案1】:

调试断言失败!版本 1.0.2446.12 构建日期:模块:Python 文件: c:\dice\Projects\BF2Branches\BF2Demo\Code\BF2\Game\Python\PythonHost.Cpp 线路:243

文本:无法导入 bf2 模块:

当前配置:

错误中的路径不存在,因为它是编写 PythonHost.cpp 的机器上的路径。 “调试断言”意味着代码的开发人员在 cpp 文件中的指定行号处进行条件检查,以检查特定条件以确保“一切正常”。但显然不是。 BF2 安装了调试版本,这似乎很奇怪。

无论如何,您的进程确实开始了,但它出错了。问题是,当您从 C# 中启动进程时,它似乎无法找到名为“bf2”的 python 模块。

所以首先要验证 {BF2 安装文件夹}\python\bf2\ __init__.py 是否存在。

为了更深入地了解为什么会发生这种情况,请尝试像这样启动 BF2(假设您的 C# 应用程序是控制台应用程序):

Process bf2 = new Process();
bf2.StartInfo.FileName = @"C:\Program Files\EA Games\Battlefield 2\BF2.exe";
bf2.StartInfo.Arguments = "+debugOutput 1";
bf2.StartInfo.UseShellExecute = false;
bf2.StartInfo.RedirectStandardOutput = true;
bf2.StartInfo.RedirectStandardError = true;
bf2.Start();    

Console.WriteLine(bf2.StandardOutput.ReadToEnd());
Console.WriteLine(bf2.StandardError.ReadToEnd());

这应该会在控制台上打印一些日志,我怀疑通过这些日志可以推断出一些有用的东西。

顺便说一下,您能否发布剩余的错误消息(即在“当前配置:”行之后)

【讨论】:

  • 这是 bf2 给出的完整错误。我正在使用 Windows 表单,所以我对其进行了一些更改,Bf2 现在给了我一个不同的错误,但没有任何内容被打印到日志中。调试断言失败!版本 1.0.2446.12 构建日期:模块:主文件:c:\dice\Projects\BF2Branches\BF2Demo\Code\BF2\Game\Main\StatusMonitorImpl_win32.cpp 行:107 文本:无法设置控制台窗口大小当前配置文件:The init.py 确实存在。
  • 对上述评论的格式表示抱歉。这个网站上的评论似乎有点奇怪,它不允许我编辑它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-23
  • 1970-01-01
  • 1970-01-01
  • 2010-10-02
  • 1970-01-01
相关资源
最近更新 更多