2016-09-09 11 views
0

私のアプリケーションを配備する際、静的ディレクトリから提供される必要があるいくつかのアセットを含むライブラリをインストールする必要があります。それが意味し、デプロイ時に、私は、次の作業を行う必要があります。インストールされたpipパッケージのアセットを見つける方法

  1. pip installパッケージ
  2. パッケージがインストールされている絶対場所を検索する(これは通常、virtualenvのか、グローバルな場所でsite-packagesです)
  3. コピーインストールパッケージから静的なディレクトリへの資産

は、ステップ2を行うためのポータブルな方法がありますか?インストールされたパッケージを見つけなければならない唯一のデータは、pip/pythonです。

python:どの絶対的な場所に特定のパッケージをインストールしましたか?

答えて

1

あなたがパッケージabcをインストールする場合は、あなたとのpythonプログラムでそのベースの位置をそのパッケージをインポートして得ることができる必要があります:インポートは、このために持っているかもしれないいくつかの副作用のために可能ではない場合

import abc 
import os 
print(os.path.dirname(abc.__file__)) 

sys.pathを歩くことができ、abc.pyまたはabc/__init__.pyを探すことができます。

複数のインストールがある場合は、インストールしたバージョンが見つからない可能性がありますが、その場合は、abcをインポートするときに実行されませんが、古いバージョンです。

1

インストールされたパッケージを見つけるには、次のコマンドを実行します。

pip show installed-package-name 

これは、パッケージの場所を含む一連の属性を返します。下記の例を参照してください。

C:\> pip show selenium 
--- 
Metadata-Version: 2.0 
Name: selenium 
Version: 3.0.0b2 
Summary: Python bindings for Selenium 
Home-page: https://github.com/SeleniumHQ/selenium/ 
Author: UNKNOWN 
Author-email: UNKNOWN 
License: UNKNOWN 
Location: d:\appl\python27\lib\site-packages 
Requires: 
0

pkgutil.get_dataを参照してください。ファイルシステムベースのアプローチは、zipファイルとしてインストールされているパッケージで壊れます。

+0

Zipファイルには、アセットを追加するための全く別の方法が必要です。 – Anthon

関連する問題