3

別のファイルシステムに保持したい Python パッケージがいくつかありますが、残念ながら同じトップレベル モジュール名を共有しています。

説明のために、ディレクトリ構造は次のようになります。

/fs1
  /top
    __init__.py
    /sub1
      __init__.py

/fs2
  /top
    __init__.py
    /sub2
      __init__.py

Python 2.7 で、 と の両方を同じスクリプトにPYTHONPATHインポートできるように設定する方法はありますか? と の両方を追加しても機能しません。これは、2 つのサブモジュールのうちの 1 つしかインポートできないためです ( で最初に来る方)。top.sub1top.sub2/fs1/fs2PYTHONPATH

2 つのツリーを 1 つにコピー/シンボリック リンクすることもできますが、実際的な理由から、それは行いません。

4

1 に答える 1

1

いくつかのオプションがあり、そのうちの 1 つが次のimpとおりです。

import imp

foo = imp.load_source('module.name', '/path/to/file.py')
foo.MyClass()

私の情報源


もう一つは一緒ですimportlib

相対的:

importlib.import_module('.sub1', 'fs1.top')

絶対の:

importlib.import_module('fs1.top.sub1')

私の情報源

于 2015-03-30T20:09:12.797 に答える