Python パッケージの標準の非コード リソースの場所
質問
これは一般的なシナリオであるはずですが、関連する投稿がまだ見つかりませんでした。
いくつかの画像やその他のリソース ファイルを使用する Python ライブラリ (通常のアプリケーションにも同じことが当てはまると思います) をデプロイする予定です。そのようなアイテムの標準的な場所はどこですか?私が想像するに、プロジェクトのために Foo
, 、選択肢は次のようになります
- 持っている
resources
ソース リポジトリ内のディレクトリに移動し、ファイルを次の場所に移動します/usr/share/foo/
- リソースを Python パッケージ内に直接配置します。
/usr/lib/python-<version>/foo/
助言がありますか?
編集: 示唆されているように、これが実行される主要なプラットフォームが Linux であることを明確にします。
解決
この質問は、やや不完全です。例は、/ usr / share / FOOまたは/ usr /ローカル/共有/ fooのためのLinux(およびほとんどのUNIXベースのOS)に標準であろう。 OS Xでは、あなたは同じことを行うことができますが、(それは設定やその他もろもろを格納するために、通常のですが)私はあなたが以下のライブラリを書いている場合も、そのようなことを置く場所だろう「/ライブラリ/ Application Support / foo」を思うだろう「フレームワーク」という考え、すべてのリソースが/Library/Frameworks/Foo.Frameworkに含まれることになる」...一方、OS XのアプリがFoo.app
内のリソースディレクトリ内のすべてそこにリソースを維持しなければなりません他のヒント
私たちは、
/opt/foo/foo-1.2/...
に非の.pyファイルを置きます
もちろん、アパッチによって提供される静的なメディアのために、それは/var/www/html/foo/foo-1.1/media/...
に進み、除きます。
、もちろん、顧客固有の設定ファイルを除きます。彼らはに行きます
/var/opt/customer/foo/...
これらは、Linuxの標準規格に従ってください。
私たちは、それらは、彼らが配布の一部だように感じるので、離れた場所の/usr/lib/
と/lib
種類から滞在してみてください。それらは明確にLinuxディストリビューションのディレクトリから分離しているので、私たちは/opt
と/var
に傾くます。
標準の場所あなたの標準のlibsがどこに行くです。しかし、それはあなたがそこにあなたのpythonのlibをお勧めしますことを、あなたが書いたものとは私には思えません。私はあなたが VIRTUALENV を試してみるべきだと思います。
あなたが(まあ、それは本当にあなたのためだけにsudo easy_install virtualenv
する金額)すべての問題を通過したくない場合、あなたは自分の~/
内の任意のディレクトリにあなたのpythonのlibをダンプとの線に沿って何かをしようとすることができ
import sys
sys.path.append( '/full/path/to/your/lib/goes/here')
あなたのlibを使用して、任意のアプリケーションに。
与えられた例はテストのみを目的としていることを、心に留めてください。ライブっぽい何のために、私はあなたが distutil して使用することをお勧めします。使用例は、ここを与えられます。