0

仍在尝试找出正在构建的此代码并使其跨平台工作。我有几个定义因素,有问题的代码引用,所以我将全部输入。

self.mainFile = r"\SYS64"
self.dir_path = os.path.dirname(os.path.realpath(__file__))
self.mainOSProgram = "python " + self.dir_path + self.mainFile + r"\jdosos.py"

我已经让它一起工作了

subprocess.Popen(["python",r'\Users\Terra Byte\Desktop\jdos3\JDOS3\SYS64\jdosos.py'])

但这定义了一个路径,当我希望由代码定义路径时,它可以在安装程序的任何地方工作。

我犯了同样的错误,python: can't open file 'C:\Users\Terra': [Errno 2] No such file or directory

如果 I print(self.mainOSProgram),这就是结果。

python C:\Users\Terra Byte\Desktop\jdos3\JDOS3\SYS64\jdosos.py

这是正确的文件路径,但它作为一个字符串配对,所以它在第一个空格处打破了语句。

4

1 回答 1

2

print(self.mainOSProgram)按原样输出字符串,因此您会得到空格。如果您尝试在命令中添加引号,它将起作用。 python "C:\Users\Terra Byte\Desktop\jdos3\JDOS3\SYS64\jdosos.py"

关于我将os.path.join用来构建路径的代码

import subprocess
import os

dir_path = os.path.dirname(os.path.realpath(__file__))

executable_path = os.path.join(dir_path, "SYS64", "jdosos.py")
subprocess.Popen(["python", executable_path])

于 2019-10-15T22:59:45.183 回答