2016-12-12 5 views
0

pkg_resources.requireを使用して、必要なモジュールがすべて正しいバージョンにインストールされているかどうか確認したいと思います。すべてうまくいきますが、pkg_resourcesがpkg_resource.VersionConflictを発生させた場合、情報をどのように出力するかわかりません。pkg_resourcesの例外情報を出力する

この例では、インストールされたcccのバージョンが1.0.0であるため、例外が発生します。

dependencies = [ 
     'aaa=0.7.1', 
     'bbb>=3.6.4', 
     'ccc>=2.0.0' 
    ] 
try: 
    print(pkg_resources.require(dependencies)) 
except pkg_resources.VersionConflict: 
    print ("The following modules caused an error:") 
    // What do i have to do to print out the currently installed version of ccc and the required version using the returned information from pkg_resourcens// 
exit() 
+0

はパッケージによって異なります。時には 'import ccc; print(ccc .__ version __) 'は動作します –

+0

ポイントは、pkg_resources.requireが返す結果で作業したいということです。結果には、cccだけが間違ったバージョンを持っていることが示されている必要があります。 – AndiGasman

+0

そのオブジェクトを変数に割り当てる必要があります。今すぐあなたはそれを印刷した後にそれを投げているだけです。 –

答えて

0

です。私は変数にexeceptionを割り当てて、それを処理しなければなりません。コードは次のとおりです。

dependencies = [ 
    'aaa=0.7.1', 
    'bbb>=3.6.4', 
    'ccc>=2.0.0' 
] 
try: 
    print(pkg_resources.require(dependencies)) 
except pkg_resources.VersionConflict as version_error: 
    print("The following modules caused an error:") 
    print("Version installed :", version_error.dist) 
    print("Version required :", version_error.req) 
    exit() 
関連する問題