如何跨平台地从一个Python脚本运行另一个Python脚本?
这是一个问题...
我正在为Blender写一个非常小的插件,
我有10个Python脚本,它们通过命令行解析不同的文件格式,还有一个主Python脚本来运行所有其他脚本,并给它们发送正确的命令...
比如,“Main.py”包含:
txt2cfg.py -inFile -outFile...
ma2lxo.py -inFile -outFile...
Blender已经内置了Python,所以我可以在Blender中运行“Main.py”,但是我希望它能在PC和MAC上都能用,并且不需要安装Python,所以我不能使用:
- execfile(' txt2cfg.py -inFile -outFile ')
- os.system(' ma2lxo.py -inFile -outFile ')
- 甚至不能使用import subprocess
因为这些方法都需要先安装Python才能运行*.py文件。
抱歉语言表达不太好
谢谢
3 个回答
1
有两个选择:
- 使用 py2exe 把解释器和脚本打包在一起。
- 导入模块并自动调用函数。
4
如果你真的需要在一个新的进程中执行一个Python脚本,但又不知道你想用的解释器在哪里,可以使用sys模块来帮忙。
import sys
import subprocess
subprocess.Popen((sys.executable, "script.py"))
不过,动态导入这个模块,然后在另一个脚本中运行它的主方法,可能是个更好的主意。
3
比如,"Main.py" 文件里包含:
txt2cfg.py -inFile -outFile...
ma2lxo.py -inFile -outFile...
这里有两件事。
每个脚本都需要一个 main() 函数和一个“主导入开关”。想了解这个怎么写,可以查看 这个链接。
导入并执行其他脚本。
import txt2cfg import ma2lxo txt2cfg.main( inFile, outFile ) ma2lxo.main( inFile, outFile )
这是最简单的做法。