1

そこで、全文検索フレームワークMongoDbを作成しています。MongoDB はほぼ JavaScript ネイティブであるため、最初に JavaScript ライブラリを作成し、それが機能します。

今、私はそのためのPythonフレームワークを作成しようとしています。これは部分的にPythonになりますが、部分的に同じ保存されたjavascript関数を使用します-javascript関数はライブラリの組み込み部分です。一方、javascript フレームワークは python に依存しません。それらはかなり絡み合っているため、同じリポジトリに保持する価値があるようです。

プロジェクト全体を構造化して、javascript と python フレームワークに同等のステータスを与える方法を考え出そうとしています (将来的には ruby​​ ドライバーか何かでしょうか?) が、それでも python ライブラリを適切にインストールできるようにします。

現在、次のようになっています: (少し単純化されています)

javascript/jstest/test1.js
javascript/mongo-fulltext/search.js
javascript/mongo-fulltext/util.js
python/docs/indext.rst
python/tests/search_test.py
python/tests/__init__.py
python/mongofulltextsearch/__init__.py
python/mongofulltextsearch/mongo_search.py
python/mongofulltextsearch/util.py
python/setup.py

簡単にするためにいくつかのファイルを省略していますが、一般的な考え方は理解できます。それはかなり標準的なpythonプロジェクトです...兄弟ディレクトリツリーに保存されているJavaScriptの束全体に大きく依存していることを除いて。

setuptools に関しては、この種のことを処理するための好ましいセットアップは何ですか? setuptools docs に従って、 etc を使用しpackage_dataて Python プロジェクト内にあるデータ ファイルをインストールする方法を考え出すことができます。

問題は、setuptools を使用して、Python コード ツリーの外部から JavaScript ファイルを含むものをインストールし、Python コードを開発しているときに一貫した方法でそれらにアクセスしたい場合と、それがeasy_install誰かのサイトに編集された場合です。

それはsetuptools でサポートされている動作ですか? paver または distutils2 または Distribute などを使用する必要がありますか? (基本的な distutils はオプションではありません。私がこれを行っている理由は、要件の追跡を有効にするためです) これらのファイルの内容を Python スクリプトに読み込むにはどうすればよいですか?

4

1 に答える 1

2

簡単に言えば、Python配布ツールはどれも、あなたが望むことを、あなたが望む正確な方法で実行することはできないということです。distutilsのdata_files機能を使用する場合でも、JavaScriptファイルをPythonプロジェクトディレクトリ(つまり、setup.pyと同じディレクトリの下のどこかに)にコピーする必要があります。

その場合、ビルドプロセスの一部として.jsファイルをパッケージに(つまり、mongofulltextsearch / init .pyと一緒に)コピーし、package_dataまたはinclude_package_data=Trueを使用することもできます。

(または、リビジョン管理システムがそれらをサポートしている場合は、シンボリックリンクや外部などを使用することもできます。ソース管理を構築するときに、Python配布ツールがシンボリックリンクを実際のファイルに変換すると思います。少なくとも、試す。)

于 2010-05-24T16:00:53.203 に答える