2016-07-02 10 views
0

Pythonスクリプトでpipモジュールを使用して、ソフトウェア/モジュールのインストールを自動化します。 (リモート)ソフトウェア/モジュールが存在するかどうかを確認するにはどうすればよいですか?私はそれを可能にするpipモジュールには何も見つかりませんでした。Python3 pipモジュール、PyPiにパッケージが存在するかどうかをチェック

マイコード:

class install_pip: 
    def __init__(self): 
     self._liste=['install'] 
    def install(self): 
     pip.main(self._liste) 
    def addsoftware(self, software): 
     if type(software) is str: 
      self._liste.append(software) 
     if type(software) is list: 
      for i in software: 
       self._liste.append(i) 
    def delsoftware(self, software): 
     if type(software) is str: 
      self._liste.remove(software) 
     if type(software) is list: 
      for i in software: 
       self._liste.remove(i) 
    def _return(self): 
     return self._liste[1:len(self._liste)] 
    list = property(_return) 

私は、 'ソフトウェア' は存在するかどうかを確認します。おかげさまで

編集:私はこのコードを試してみました:

try: 
    pip.main(['install', 'nonexistentpackage']) 
except pip.InstallationError as err: 
    print(echec) 

しかし、私はすべてのエラーを取得いけない...

答えて

0

次のコードは、(パッケージはタイプ「str」はである)パッケージをインポートしようとします。パッケージをインポートできない場合(つまりインストールされていない場合)は、Pipを呼び出してパッケージのインストールを試みます。

import pip 

def import_or_install(package): 
    try: 
     __import__(package) 
     print (package, "exists, and was successfully imported.") 
    except ImportError: 
     pip.main(['install', package]) 

import_or_install("name of package") 
+0

感謝しますが、リモート・パッケージが存在する場合には、テストするものではありません、インストール可能なソフトウェアのキャッシュにアクセスするためのPython的な方法はありますか? –

0

私はこれだろう。

import requests 
response = requests.get("http://pypi.python.org/pypi/{}/json" 
         .format(module_name)) 
if response.status_code == 200: 
    # OK, the json document exists so you can 
    # parse the module details if you want 
    # by using data = response.json() 
    # 
    # anyway, here you know that the module exists! 
    ... 
関連する問題