如何跨平台地从一个Python脚本运行另一个Python脚本?

1 投票
3 回答
3826 浏览
提问于 2025-04-17 00:58

这是一个问题...

我正在为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

有两个选择:

  1. 使用 py2exe 把解释器和脚本打包在一起。
  2. 导入模块并自动调用函数。
4

如果你真的需要在一个新的进程中执行一个Python脚本,但又不知道你想用的解释器在哪里,可以使用sys模块来帮忙。

import sys
import subprocess

subprocess.Popen((sys.executable, "script.py"))

不过,动态导入这个模块,然后在另一个脚本中运行它的主方法,可能是个更好的主意。

3

比如,"Main.py" 文件里包含:

txt2cfg.py -inFile -outFile...
ma2lxo.py -inFile -outFile...

这里有两件事。

  1. 每个脚本都需要一个 main() 函数和一个“主导入开关”。想了解这个怎么写,可以查看 这个链接

  2. 导入并执行其他脚本。

    import txt2cfg
    import ma2lxo
    txt2cfg.main( inFile, outFile )
    ma2lxo.main( inFile, outFile )
    

这是最简单的做法。

撰写回答