0

重複の可能性:
Python で相対インポートを行うには?

だから私は私のpythonファイルからのフォルダであるモジュールを含めようとしていて、次に複数のフォルダを入れようとしています.

したがって、フォルダ階層は次のようになります。

\Folder\
    \Folder\First\
        \Folder\First\myPythonFile.py
    \Folder\Second\
        \Folder\Second\AnotherFolder\
            \Folder\Second\AnotherFolder\addedFile.py

addedFile.py を myPythonFile.py に含めたいです。これがどのように達成されるかはわかりません。

4

1 に答える 1

1

Python 2.5 (おそらく 2.4) 以降では、相対インポートが可能です。

PEP 328によれば、とフォルダーに2 つの空の__init__.pyファイルを追加すると、次のように記述できます。SecondSecond\AnotherFolder

 from ..Second.AnotherFolder.addedFile import eggs

中身myPythonFile.py

目的のモジュールをインポートします(私の例のでは)

(フォルダー内にファイルを追加すると、それらがパッケージ__init__.pyに変換されます)

代替アプローチ

フォルダーのパッケージを作成したくない場合Secondは、フォルダーを含めるために sys.path を変更できSecond\AnotherFolderます。

import sys
import os
sys.path.append(sys.path.append(os.path.abspath('../Second/AnotherFolder')))
import addedFile

しかし、私はこのアプローチを思いとどまらせます。その理由はここで説明されています。

于 2013-02-05T17:04:49.010 に答える