2017-03-03 16 views
1

Pythonパッケージが正常にインストールされているかどうか(pip install/setup.py install)、編集可能な/ egg-linkモード(pip install -e/setup.py develop)であるかどうかを確認する方法はありますか?pythonパッケージが 'editable'(egg-link)モードでインストールされているかどうかを確認しますか?

パッケージのパスにsite-packagesが含まれているかどうかを確認することができますが、これは「編集不可」インストールである可能性が非常に高いですが、これは非常に汚いと感じています。


私はこれをチェックしようとしている理由は、私のアプリケーションは、このような/etc/myapp.conf~/.myapp.confなどさまざまな場所で設定ファイルをチェックしていることです。開発者のために私は<pkgdir>/myapp.confをチェックしたいと思いますが、設定が見つからなかった場合の可能性のある場所のリストを表示しているので、パッケージがサイトパッケージにインストールされているときは本当にpkgdirオプションを含めたくありませんそこに設定ファイルを作成すべきではありません)。

答えて

0

pipにはcodeが含まれています(pip freezeの行に接頭辞-eが付いています)。 pipのAPIが安定であることが保証されていないので、それはpipからそれをインポートするのではなく、独自のアプリケーションにコードをコピーするのが最善です:&をコピーしても安全でなければなりませんので

def dist_is_editable(dist): 
    """Is distribution an editable install?""" 
    for path_item in sys.path: 
     egg_link = os.path.join(path_item, dist.project_name + '.egg-link') 
     if os.path.isfile(egg_link): 
      return True 
    return False 

コードはMITライセンスでありますかなり多くのプロジェクトに貼り付けることができます。

関連する問題