我的应用程序dll';通过Python脚本启动应用程序时未正确加载

我的应用程序dll';通过Python脚本启动应用程序时未正确加载,python,dll,Python,Dll,我已使用以下脚本启动我的应用程序 import subprocess subprocess.call('C:\Program Files (x86)\Terrain\Track3D\TRACK™.exe') 我可以启动应用程序,但我的应用程序的几个dll没有加载。手动启动时,应用程序可以完美启动 显示了许多错误,其中有几个是: 1) 未能加载模块SchedulesController的类型。 错误是:无法加载文件或程序集“Schedules.dll”或其依赖项之一。系统找不到指定的文件。 找不

我已使用以下脚本启动我的应用程序

import subprocess
subprocess.call('C:\Program Files (x86)\Terrain\Track3D\TRACK™.exe')
我可以启动应用程序,但我的应用程序的几个dll没有加载。手动启动时,应用程序可以完美启动

显示了许多错误,其中有几个是:

1) 未能加载模块SchedulesController的类型。 错误是:无法加载文件或程序集“Schedules.dll”或其依赖项之一。系统找不到指定的文件。 找不到System.IO.File异常

2) 错误窗口的标题为“Microsoft.Practices.Prism.ModuleTypeLoadingException”


有谁能给我一个解决这个问题的方法吗?

windows上python的一个特点是路径中的正斜杠需要转义,包含空格的目录或文件名需要用引号括起来。此外,文件名的末尾还有unicode(tm)

    import subprocess
    subprocess.call('C:\\"Program Files (x86)"\\Terrain\\Track3D\\r"TRACK™.exe"')
所作的三项修改是:

  • windows上的Python需要路径名中的“\\”而不是“\”
  • 带空格的文件/目录名需要引号
  • r“轨道™.exe”指示python使用原始字符串(以正确表示(tm))

系统中的
Schedules.dll
在哪里?顺便说一句,对windows路径使用
raw
前缀,您可能会遇到问题。它位于Track3D文件夹中。您能告诉我如何使用上述路径的原始前缀吗?您能试试
subprocess.call('TRACK')吗™.exe',cwd=r'C:\Program Files(x86)\Terrain\Track3D')
?嗨,Jean,我试过上面的方法,但它说的语法无效。不管怎么说,这就是我用的。子进程调用('TRACK™.exe',cwd=r'C:\ProgramFiles(x86)\Terrain\TRACK3D')我是否在
r
和字符串之间放置了空格?请复制我的行,不要重新键入。嗨,史蒂夫,我尝试了你给出的两个选项。dll仍然没有正确加载。这并不是因为dll无法加载。在这种特殊情况下,反斜杠不是问题,因为没有有效的转义序列。TM是应用程序exe名称的一部分。所以,如果我删除它,它将成为一条无效路径,对吗?