"imp"の絶対/相対パスを使用して、同じディレクトリ内の依存関係を持つモジュールをインポートする方法はありますか?impと同じ絶対パス/相対パスの依存関係を持つモジュールをインポートするには?
.
├── importFrom
│ ├── dependant.py
│ └── dependence.py
└── test.py
ファイルtest.pyの輸入が使用dependant.py:ここ
は、ディレクトリ構造を次のimport dependence
:順番に輸入がで直接使うdependence.py
modname=imp.load_source("testImp","importFrom/dependant.py")
test.pyを呼び出すと
Traceback (most recent call last):
File "test.py", line 3, in <module>
modname=imp.load_source("testImp","importFrom/dependant.py")
File "importFrom/dependant.py", line 1, in <module>
import dependence
ImportError: No module named dependence
load_sourceには、ロードされたモジュールへのパスをローダーに追加して、相対的な依存関係を自動的に検出できるようにするのは意味があります。今私が見つけた唯一の選択肢は、test.py
編集に入れて、システムパスに追加されたために :私はパスと相対インポートを行うには良い方法を見つけたが、取得するためにファイルを追加しました(現在の作業ディレクトリからの独立)、呼び出し元の絶対パス
sys.path.append(os.path.join(os.path.dirname(__file__), 'importFrom'))
import dependant
を使用しています imp.load_module( "依存"、tup [0]、tup [1]、tup [2] ) "No module named dependence"という同じエラーが返されます。 – a1an
私はそれがpython 2.7のload_sourceで実現可能ではないと思うので、正しい答えは "実現不可能"であり、回避策のアプローチを使用しなければならない – a1an