Python3ソフトウェア内で、gitがインストールされているかどうかを確認する必要があります。端末から次のように入力できることを知っています。
dpkg --get-selections > filename
インストールされているプログラムを見つけて、それをファイルに入れます。
そこから、gitがインストールされているかどうかを確認するためにpythonを取得するにはどうすればよいですか?それとも簡単な方法はありますか?
python aptモジュールを使用できますが、パッケージがインストールされているかどうかのみをチェックします。非debディストリビューションが失敗するか、パッケージマネージャーの外部にインストールされている場合:
import apt
cache = apt.Cache()
cache.open()
cache["git-core"].is_installed# Evaluates true if git is installed
Gitを実行し、失敗した場合は例外を処理してください:
import subprocess
try:
# pipe output to /dev/null for silence
null = open("/dev/null", "w")
subprocess.Popen("git", stdout=null, stderr=null)
null.close()
except OSError:
print("git not found")
3番目のオプションは、$PATH
のすべてのパスを試し、path/gitに対するexec許可があるかどうかをテストすることです。
アプリケーションのランチャーまたはバイナリがデフォルトでインストールされている場所がわかっていると仮定すると、簡単に実行できるアプローチは、次のようにその存在を確認することです。
#! /usr/bin/env python3
#
# Query package state by installation path
import os.path
path = '/usr/bin/git'
def query_package(path):
if os.path.exists(path):
print('Git is ready to use')
else:
print('please install Git')
ただし、インストール済みパッケージを照会する別の方法は、パッケージ管理(この場合はdpkg)を参照することです。
#! /usr/bin/env python3
#
# Query package state by dpkg status
import subprocess
package = 'git'
def query_package(package):
status = subprocess.getstatusoutput("dpkg-query -W -f='${Status}' " + package)
if not status[0]:
print(status[1]) # package is installed
else:
print(status[1])
そのようにしたい場合は、次のようなことができます:
checkvar = 0 open( "filename")の行の場合: if "git"の行の場合: checkvar = checkvar + 1 print "Phrase git found 「、checkvar、「回」
私は別のアプローチを取ります。特定のシステムでGitが使用可能かどうかを確認するには、git
バイナリがユーザーのPATHに存在するかどうかを確認するか、git --version
を実行してみてください。このチェックはより信頼性が高く、(何らかの理由で)/ usr/local/bin、または〜/ binのソースからGitをインストールするユーザーをサポートします。
これはあなたの質問に対する直接的な答えではありませんが、とにかく役立つことを願っています。 Pythonでのコーディングにヘルプが必要な場合はお知らせください。詳細を説明します。
which
の出力を確認することもできます。
(おそらく他の誰もそれを提案していないので、それはうまくいかないでしょうか?)