3

現在、python 2.7.3 を使用しています。

find_module 関数のみを実装する sys.meta_path にインポート フックを追加しました。次のようになります。

class SvnImporter(object):
    def find_module(self, fullname, *args):
        if fullname.split(".")[0] == "load_from_svn":
            exported_parent_dir = self.export_from_svn(fullname)
            sys.path.append(exported_parent_dir)
        return None

目的のモジュールを svn からエクスポートし、それをsys.pathSvnImporterに追加して、通常の方法でインポートできるようにするだけです。

私が抱えている問題は、これらの通常インポートされたモジュールはすべて、特に指定しない限り、すべて相対インポートを行っていることです。

from __future__ import absolute_import

すべてのファイルの先頭。私が見ているエラーは次のようなものです:

module "load_from_svn.module1.socket" could not be loaded

私はすでにfrom __future__ import absolute_importメインスクリプトの開始時に持っています - これにより、その後にロードされたすべてのモジュールのabsolute_importがオンになったと思いましたか? すべてのモジュールで相対インポートではなく絶対インポートを使用するにはどうすればよいですか?

4

0 に答える 0