問題タブ [module-search-path]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - ディレクトリ名+ファイル名を入力する代わりにモジュール検索パスがあるのはなぜですか?
利点はありますか?それは何ですか?
python - MacOS X で Python モジュールを追加するにはどうすればよいですか?
WordNet を使用するための Python ライブラリである pywn を使用しようとしています。私は Windows で少し Python を使ってみましたが、MacOS X に関してはまったくの初心者です。私は MacOS 10.5.8 で実行しているので、デフォルトの Python インタープリターは 2.5.1 です。
pywn の指示には、「各 .py ファイルを Python 検索パスのどこかに配置してください」と書かれています。
MacOS X のデフォルトの python インストールで定義されている python 検索パスはどこにありますか? pywn ファイルを /Users/nick/programming/pywn に配置した場合、これを検索パスに追加する最良の方法は何ですか? これはファイルを置くのに最適な場所ですか?
python - sys.path よりも多くの検索パスがありますか?
sys.path は、Python モジュールのすべての検索パスの完全なリストだと思いました。
ただし、私の Ubuntu マシンでは、「/usr/local/lib/python2.6/dist-packages/」がほとんどすべてのモジュールの場所であり、そのパスは sys.path にありません。そして、そのパス上の任意のモジュールを引き続きインポートできます。
編集、真実ではありません: sys.path を空のリストに設定しても、そのパスからインポートできます。
この dist-packages パスの暗黙の知識はどこから来たのですか? そして、この暗黙的な検索パスのグループに他のパスはありますか、それとも何でしょうか?
編集: 私の投稿の 2 番目の部分は正しくないようです。実際、「sys.path = []」は、現在の作業ディレクトリからでも、何もインポートできないことを意味します。謝罪いたします。
lua - lua アドインをパッケージとして許可する検索パスを設定する方法
tl;dr:カスタム ディレクトリ名パターンを使用して lua パッケージを作成したいのですが、検索パスに問題があります。
問題
Lightroom と同様のモデルに従って、ユーザーがプラグインを作成できるようにしたいアプリケーションがあります。
- プラグインのデフォルトのセットは次の場所に保存されています
<app data>/plugins/<name>.myplugin
<name>.myplugin
一連のスクリプト、バイナリ、またはその他のリソースを含むことができるディレクトリ バンドルです。- プラグインは、さまざまなスクリプトを介して、さまざまな機能をアプリにエクスポートできます
- エクスポートされた関数の名前は
info.lua
、アプリによって読み取られるファイルに一覧表示されます
私が取り組んでいる問題は、プラグインをパッケージ (モジュール + サブモジュール) または通常のスクリプトとしてラップする最善の方法です。プラグインにはサードパーティのモジュールが含まれている可能性があると思います。
パッケージ検索パスを設定するpackage.path
と、含める
次に、でパッケージをロードできますFoo=require 'Foo'
。ただし、サブモジュールをロードする方法がわかりません。Foo.lua
を呼び出すと、UsefulFunctions=require 'UsefulFunctions'
lua の検索パスが を検索しようとするため、このロードは失敗しますUsefulFunctions.myplugin/UsefulFunctions.lua
。require 'Foo.UsefulFunctions'
同様の理由で、どちらでもロードできません。
いくつかのオプション:
- 1 つの回避策は、各プラグインのパスをパッケージ パスに明示的に追加することですが、2 つのプラグインにそれぞれ同じ名前のサブモジュールが含まれている場合に問題が発生します。
- 別のオプションは、モジュールを提供するのではなく、通常の lua スクリプトを使用するようにプラグインを作成することですが、これは、各プラグイン内で検索パスを設定する必要があることを意味します。
.myplugin
代替オプションは、パッケージ検索パスを簡素化するサフィックスを 失うことです。- このタイプの検索パスを明示的にサポートするように Lua にパッチを適用する
必要な機能を提供する方法はありますか?
現在、Lua 5.1 を使用しています。5.2 ではパッケージの検索パスをより細かく制御できることは知っていますが、現時点では 5.2 に更新するオプションはないと思います。luabind も使用していますが、これとは関係ないと思います。