ディレクトリ mydir に次のものがあります。
x.py with:
import mypackage.mymodule
mymodule.py:
def module()
__init__.py
mydir にサブディレクトリ mypackage を作成して、そこに別の __init__.py を作成したくありません。推奨されないことはわかっていますが、私の理由はここでは扱いません。
モジュールファインダーを使用してモジュール名とパスを変更しようとしていました。この件に関する適切なドキュメントは見つかりませんでした。
ファイルを作成しました:
mymod.py:
import mypackage.mymodule
import x
and from \__init__.py:
import modulefinder
finder = modulefinder.ModuleFinder('/fullpath/mydir',0,['x.py'],['mypackage.mymodule',(('mypackage/mymodule','mymodule')
finder.run_script('mymod')
I also tried:
__init__.py:
import modulefinder
modulefinder.AddPackagePath('mypackage','/fullpath/mydir')
私が試した 3 番目の方法は、sys.modules を自分で変更することでした。また、私にはうまくいきませんでした。key() で設定エラーが発生しました。
それぞれの方法について、それが機能しなかった理由と正しい方法を指定できますか?