1
  1. たくさんの html/css/etc をパッケージ化する必要があります。パッケージとしてのファイル: それらを「テーマ」と呼びましょう。私はこれを行っているので、これらをいくつかの/任意の数のアプリケーションでクロスアプリケーションで利用できるようにします。

  2. WHEREEVER/virtualenv/lib/pythonVERSION/site-packages/package_name というモジュールがあります。

  3. すべての「テーマ」は、package_name の「themes」という名前のフォルダーの下にあります

これらのテーマをモジュール自体としてインポート可能にする必要はありません。ファイルシステム内のどこにでも参照する必要があるだけで、プロトコルがどうなるかわかりません。そのパスを見つけて、必要に応じて渡すことはできますか? パッケージがどこにインストールされていても、そのパッケージ内のディレクトリを見つけて、そこにあるものを読み取ることができることを確認する必要があります。

私は「はい」と推測しています。答えは簡単ですが、これを行う方法は、現時点では正確にはわかりません。または、私が知らないより良い方法があるかどうかもわかりません。任意の入力をいただければ幸いです。

背景:

フラスコフリーム用のモジュールローダーを作成しようとしています:

https://github.com/thrisp/fleem

編集:

今のところ私にとってうまくいった答えは、パッケージのinitファイルから定数をエクスポートすることでした:

PACKAGE_THEMES = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'テーマ')

改善および/またはより良い解決策を歓迎します。

4

1 に答える 1

1

をインポートできる場合package_nameは、パッケージがインストールされているディレクトリ ( package_dir) を特定できるため、テーマ ディレクトリの場所も特定できます。

import os
import package_name

package_dir = os.path.dirname(package_name.__file__)
theme_dir = os.path.join(package_dir, 'themes')
于 2013-05-06T17:37:38.017 に答える