【发布时间】:2012-11-23 15:10:02
【问题描述】:
我有这样的结构:
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 时它可以工作。任何帮助将不胜感激。
【问题讨论】:
-
subDir有__init__.py文件吗? -
FWIW,您可以避免对硬编码的完全限定路径执行
chdir(),例如STARTUP_FILE = os.path.join(os.path.dirname(__file__), 'someDir', 'startup.py'),后跟execfile(STARTUP_FILE)。
标签: python python-import working-directory execfile