emacs-for-python ( に基づくpython.el
) は、Python プロセスを開始し、Emacs から直接バッファを送信する優れた機能を提供します (通常は で行いますC-c C-c
)。ただし、この方法ではバッファごとに新しいプロセスが作成され、Python の作業ディレクトリは対応するファイルのディレクトリに設定され。
代わりに、作業ディレクトリがプロジェクトのルートに設定された単一の Python プロセスが必要です。または、いくつかのプロセスでさえ、モジュールのディレクトリではなく、ルートディレクトリで開始された可能性があります。
なぜそれが必要なのですか?あくまでも輸入品です。次のプロジェクト構造を想像してください。
myproject
package1
__init__.py
mod1.py
package2
__init__.py
mod2.py
file で Python プロセスを開始するmod1.py
と、Emacs は自動的に作業ディレクトリを に設定myproject/package1
し、同じパッケージからのみモジュールをインポートするように制限します。他のパッケージからのインポートはありません。絶対輸入はありません。痛み。
sys.path
現在、次のようなトリックを使用しています。
import sys, os
sys.path.insert(0, os.path.join(os.path.abspath(__file__), '..', '..'))
各モジュールの冒頭。しかし、これは本当に、本当に、本当に醜く、不便です。
Emacsで下位プロセス用にPythonのプロジェクトルートを設定するためのヒントやコツはありますか?