我正在编写一个python脚本来构建具有多种技术堆栈的项目。我需要检查是否所有必备组件都已准备就绪,并且Maven是必备组件之一。通常,Maven教程将要求用户设置环境变量M2_HOME并将其添加%M2_HOME%/bin到路径。使用下面的代码很容易检查环境变量,if 'M2_HOME' not in os.environ: print('Install maven firstly')但是,如果用户未设置M2_HOME为环境变量而是将其添加pache-maven-x.x.x\bin到路径,则仍可以认为Maven已成功安装,并且我认为后者更加全面。因此,出现了一个问题:如何使用Python检查是否已安装Maven?在我看来,可以mvn从Python作为进程启动并检查输出是什么,例如通过调用mvn -v。还有其他建议吗?
3 回答
白衣非少年
TA贡献1155条经验 获得超0个赞
您可以使用以下shutil.which命令
import shutil
if not shutil.which("mvn"):
print('Install maven firstly')
编辑:对于python2.7,您可以distutils.spawn.find_executable改用:
from distutils.spawn import find_executable
if not find_executable("mvn"):
print('Install maven firstly')
狐的传说
TA贡献1804条经验 获得超3个赞
您可以使用terminal命令which mvn,如果响应是,mvn not found则应该安装它。
p = subprocess.Popen(["which", "mvn"], stdout=subprocess.PIPE)
print p.communicate()
然后比较输出
添加回答
举报
0/150
提交
取消