1

私はこのような構造を持っています:

c
|-myMain.py
|-.....\someDir
              |-startup.py
              |-subDir
                     |-x.py

私はいくつかの同様の質問を見つけました、そして答えは私にこれをもたらします:

#myMain.py
import os
if __name__ == '__main__':
    os.chdir("c:\\......\\someDir")
    execfile("startup.py")

#startup.py
from subDir import x
if __name__ == '__main__':
    x.doSomething()

問題は、myMain.pyを実行するとstartup.pyでインポートが失敗することです。

ImportError: No module named subDir

ただし、startup.pyを直接実行すると機能します。どんな助けでもいただければ幸いです。

4

2 に答える 2

1

Pythonが有効なPython構造として認識されるようにするには、それをパッケージsubDirにする必要があります。そのディレクトリにファイルを含めることで、パッケージにします。ファイルは空にすることができます。__init__.py

subDirそのようなファイルがあれば、ステートメントは機能するfrom subDir import xはずです。

于 2012-11-23T15:14:56.893 に答える
0

将来の読者:

ここからのPradyumnaの答えは、私にとってこの問題を解決しました。

sysをインポートし、実行時にパスを追加して「sys.path」を変更してから、役立つモジュールをインポートします。

[つまり、sys.path.append(execfileのディレクトリ)]

于 2017-08-29T21:56:37.740 に答える