私はwhooshを使用するプロジェクトに取り組んでいます。私は、whoosh のソース ツリーをその場に残して、より高いレベルからインポートできるようにしたいと考えています。
実際の whoosh モジュールの場所は次のとおりです。
project\libs\whoosh\src\whoosh
次のようにインポートしたい:
import libs.whoosh
import libs.whoosh.index
etc.
__init__.py次のサブディレクトリをインポートするファイルを配置することで、各サブディレクトリを Python モジュールに変換するのは簡単です。
ただし、問題は、whoosh__init__.pyがそのサブモジュールを公開していないことです。したがってimport libs.whoosh.index、whoosh がシステム パスにある場合にのみ機能します。これは制約です。システム パスを操作したり、whoosh をサイト パッケージにインストールしたりしたくありません。
通常 (whoosh がシステム パス上にある場合)、whoosh の内部インポートには完全な名前が付けられているようです。すなわち、からproject\libs\whoosh\src\whoosh\index.py:
from whoosh import __version__
from whoosh.legacy import toc_loaders
from whoosh.compat import pickle, string_type
from whoosh.fields import ensure_schema
legacy、compat、fields はすべて索引付けする兄弟です。チェーンを介して whoosh をインポートすると、whoosh\src\whooshそのインポート スキームが壊れます。
なしでこれを行うにはどうすればよいですか:
- インストールする
- システムパスの操作