[英]How to capture the output of git clone command running from python subprocess
[英]Running Git clone command in Python
我是Python和Git的新手。 我正在編寫一個Python腳本,它需要執行與在Linux服務器上從我的工作區運行下面的git命令所做的相同的操作。 (即/ local / mnt / workspace /)
git clone git://git.xyz.com/platform/manifest.git -b jb_2.5
我嘗試使用Fab庫但是沒有安裝模塊fabric.api所以我無法繼續。 也,
import git
git.Git().clone("git://git.xyz.com/platform/manifest.git")
沒用。
還有其他解決辦法嗎? 很感激幫助。 謝謝。
你可以定義一個允許你調用git的git函數。 將用戶限制為git命令對於安全目的很重要; 否則要求使用git url並使用其他技術可能會導致數據丟失或其他惡意攻擊。
import subprocess
def git(*args):
return subprocess.check_call(['git'] + list(args))
# examples
git("status")
git("clone", "git://git.xyz.com/platform/manifest.git", "-b", "jb_2.5")
將它更改為subprocess.check_output
允許您查看輸出git打印,而不是確定成功(例如,如果您不在git repo中, git("status")
會引發異常)。
附注:看看PIP ,它旨在幫助安裝常見的軟件包。
你可以掏出(通過os.system
或subprocess
),或使用GitPython包。
由於您沒有顯示錯誤超出“不起作用”的內容,因此很難猜出您的問題究竟是什么。
但我猜測問題是import git
引發了一個ImportError
,因為你從未安裝過你想要使用的git
模塊。
如果是這樣,完全相同的自述文件告訴你如何做git.Git().clone("git://git.xyz.com/platform/manifest.git")
也會告訴你如何安裝它。
但最有可能的是,你需要的只是pip install pygit2
或pip install GitPython
東西。 (你可能需要sudo
,你可能需要在使用它之前安裝pip
,等等,但由於我們對你的平台或你的知識水平一無所知,所以沒有辦法准確猜出你需要什么。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.