1

サブフォルダー内の現在のプロジェクトのパスを見つける方法はありますか?

たとえば、次のようなものがある場合:

/
    main.py
    /utils
        utilities.py
    /foo
        foo.py
        /foo/bar
           bar.py

コーディング中/foo/foo.pyまたはコーディング中に、プロジェクトへのある種の相対パスを呼び出して、このヘルパーモジュールをインポートすることで、これを行うに/foo/bar/bar.pyはどうすればよいですか?にある「ユーティリティ」モジュールを含めたいと思います。/utils/utilities.py

次のコマンドで実行されているファイルのパスを取得できます。

os.path.realpath(os.path.abspath(os.path.split(inspect.getfile( inspect.currentframe() ))[0]))

しかし、私が必要としているのは、現在のプロジェクトの相対的または絶対的なパスです。

前もって感謝します。

4

2 に答える 2

3

プロジェクトをパッケージとして設定する場合は、パスについて心配する必要はありません。この場合、__init__.py各フォルダーに空を入れるのと同じくらい簡単です。

/src
    __init__.py
    main.py
    foo/
        __init__.py
        foo.py
        /bar
        __init__.py
        bar.py
    util/
        __init__.py
        utilities.py

さて、、そしてmain.py簡単foo.pyな方法でモジュールをbar.pyインポートできます:utilities

from util import utilities
于 2012-09-12T04:30:41.680 に答える
2

ここで提供されている例を使用して、これを機能させました。

cmd_subfolder = os.path.realpath(os.path.abspath(os.path.join(os.path.split(inspect.getfile( inspect.currentframe() ))[0],"../../utils/")))
于 2012-09-12T00:00:44.697 に答える