我正在編寫一個python腳本來構建具有多種技術堆棧的項目。我需要檢查是否所有必備組件都已準備就緒,并且Maven是必備組件之一。通常,Maven教程將要求用戶設置環(huán)境變量M2_HOME并將其添加%M2_HOME%/bin到路徑。使用下面的代碼很容易檢查環(huán)境變量,if 'M2_HOME' not in os.environ: print('Install maven firstly')但是,如果用戶未設置M2_HOME為環(huán)境變量而是將其添加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
提交
取消