2

モジュールの名前にダッシュを付けないでください。

ここに私のリポジトリ構造があります

my-repo-name/
     src/ 
     tests/
        __init__.py
        tests.py
     fab/
        __init__.py
        fabfile.py

     README.rst
     __init__.py

私のテストでは、fabfile.py をインポートしてテストを実行する必要があります。from my-module-name.fab.fabfile import X,Y,Zでも名前にダッシュが入っているので、非パッケージなので相対インポートもできません。

ハッキングし__import__(...)たりsysパスに追加したりせずにこれを行う方法についての推奨事項はありますか? 別のディレクトリを追加する必要がありますか?

4

1 に答える 1

8

使用importlib.import module

import importlib
fabfile = importlib.import_module('my-repo-name.fab.fabfile', None)
X = fabfile.X

ただし、実際にはリポジトリの名前を変更する必要があります。移行するには、次のコマンドで一時的なシンボリックリンクを作成できます

$ mv my-repo-name my_repo_name
$ ln -s my_repo_name my-repo-name
于 2012-07-25T17:46:20.310 に答える