如何以跨平台的方式从另一个Python脚本运行Python脚本?

时间:2011-08-31 19:51:46

标签: python blender

这是问题......

我正在为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')
  • 甚至导入子流程

因为他们需要安装Python才能运行* .py文件。

对不起语言

由于

3 个答案:

答案 0 :(得分:3)

如果你真的需要在新进程中执行python脚本而你不知道你想要的解释器在哪里,那么使用sys模块来帮助你。

import sys
import subprocess

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

虽然导入模块(如果需要,动态导入)然后在另一个脚本中运行main方法可能是个更好的主意。

答案 1 :(得分:3)

  

例如,“Main.py”包括:

     

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

两件事。

  1. 每个其他脚本都需要main()函数和“main-import switch”。有关此必须具有的提示,请参阅http://docs.python.org/tutorial/modules.html#executing-modules-as-scripts

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

    import txt2cfg
    import ma2lxo
    txt2cfg.main( inFile, outFile )
    ma2lxo.main( inFile, outFile )
    
  3. 这是最简单的做事方式。

答案 2 :(得分:1)

两个选项:

  1. 使用py2exe将解释器与脚本捆绑在一起。
  2. 导入模块并自动调用功能。