git を使用して、同時に作成しているモジュール内の複数の機能に取り組むことができるようにしたいと考えています。現在、ワークスペースが 1 つしかない SVN を使用しているため、PYTHONPATH にワークスペースがあります。私はこれが理想的ではないことを認識しているので、誰かがこれを行うためのより「適切な」方法を提案できるかどうか疑問に思っていました.
仮説的な状況で詳しく説明しましょう。サブモジュール「foo」と「bar」を備えたモジュール「eggs」があるとします。「bar」のコンポーネントは foo のコードを使用するため、eggs/bar/a.py は「egg.foo をインポート」する場合があります。
「卵」が git リポジトリにあるとします。「foo」に変更を加えてみたいので、コピーします。問題は、eggs/bar の「import Egg.foo」が PYTHONPATH で元のリポジトリを見つけるため、変更したものの代わりに古い「foo」を使用してしまうことです。
モジュールの各コピーが独自の関連する「foo」を使用するように設定するにはどうすればよいですか? ありがとう。
編集 - 相対インポートへのポインタをありがとう。私はそれを読んで、それを適用する方法を見ることができます。それを使用する際に私が抱えていた問題の 1 つは、かなり大きなコードベースを構築したことであり、それについてあまりきちんとしていないため、ほとんどのモジュールには の下if __name__ == '__main__':に簡単な「セルフテスト」があります。 read は相対インポートでは機能しません:
http://mail.python.org/pipermail/python-list/2006-October/408945.html
http://www.velocityreviews.com/forums/t502905-relative-import-broken.html
私がグーグルアップできたもう1つの解決策は、意図的にsys.pathを操作することです。これは、さらに悪いハックのようです。他の可能性はありますか?
編集 - 提案をありがとう。私はもともとgitブランチを誤解していたので、指摘されたブランチはまさに私が欲しいものです。それにもかかわらず、私は以前に相対インポートについて聞いたことがなかったので、それもありがとう. 私は何か新しいことを学び、その使用法を組み込むことができます。